在 WordPress 5.9 中,添加了新的钩子和函数来帮助开发人员处理文章、文章类型和分类法。
is_post_type_viewable
过滤器
WP 5.9 引入了新的is_post_type_viewable
过滤器,允许开发人员挂钩is_post_type_viewable()
以覆盖此函数执行的检查。
此过滤器公开$post_type
对象以允许返回true
或根据他们的需要返回false
。预期的过滤值是一个布尔值。由于过滤的值可能会发生变化,包括数据类型,因此此提交包括is_bool()
检查,从而确保向后兼容并防止PHP 8.1+中的潜在类型错误。非布尔值(甚至 falsey 和 truthy 值)将导致函数返回false
.
用法:
/**
* Override is_post_type_viewable() value for the "Books" custom post type.
*/
function wporg_books_is_not_a_viewable_post_type( $is_viewable, $post_type ) {
if ( __( 'Books', 'my-plugin' ) === $post_type->label ) {
return false;
}
return $is_viewable;
}
add_filter( 'is_post_type_viewable', 'wporg_books_is_not_a_viewable_post_type', 10, 2 );
Trac上的相关工单:#49628。
is_post_status_viewable
过滤器
与is_post_type_viewable
类似,is_post_status_viewable
过滤器允许开发人员挂钩到相关的 PHP 函数。此过滤器公开 $post_status
对象以允许返回true
或根据他们的需要返回 false
。
用法:
/**
* Override is_post_status_viewable() value for the "Unread" custom post status.
*/
function wporg_unread_is_not_a_viewable_post_status( $is_viewable, $post_status ) {
if ( __( 'Unread', 'my-plugin' ) === $post_status->label ) {
return false;
}
return $is_viewable;
}
add_filter( 'is_post_type_viewable', 'wporg_unread_is_not_a_viewable_post_status', 10, 2 );
Trac 上的相关工单:#54375。
post_thumbnail_url
过滤器
WP 5.9 引入了post_thumbnail_url
允许覆盖从wp_get_attachement_image_url()
函数返回的默认 url 的新过滤器 。它传递以下参数:
$thumbnail_url
: 文章缩略图URL(如果文章不存在,则为 false)$post
:文章 ID 或 WP_Post 对象。默认是全局的$post
$size
:用于检索源或高度和宽度尺寸的平面数组的注册图像大小。默认值:post-thumbnail
用法:
/**
* Override the post thumbnail URL for a specific template.
*/
function wporg_change_post_thumbnail_url_for_about_template( $thumbnail_url, $post, $size ) {
if ( 'templates/about.php' !== get_page_template_slug( $post ) ) {
return wp_get_attachment_image_url( get_template_directory . '/images/my-specific-image.png' );
}
return $thumbnail_url;
}
add_filter( 'post_thumbnail_url', 'wporg_change_post_thumbnail_url_for_about_template', 10, 3 );
Trac 上的相关工单:#40547。
post_thumbnail_id
过滤器
同样,WP 5.9 引入了新的 post_thumbnail_id
过滤器,它允许覆盖从 get_post_thumbnail_id()
. 它传递以下参数:
$thumbnail_id
: 文章缩略图 ID(如果文章不存在,则为 false)$post
:文章 ID 或 WP_Post 对象。默认是全局的$post
Trac 上的相关工单:#23983。
register_taxonomy()
新标签可用
在 WP 5.9 中,一些静态字符串被替换为额外的标签选项,以允许开发人员更灵活地自定义Edit { taxonomy }屏幕。
添加了以下标签:
name_field_description
:“编辑标签”屏幕上“名称”字段的说明。默认值:“名称是它在您网站上的显示方式。”parent_field_description
:“编辑标签”屏幕上“父”字段的说明。默认值:“分配父术语以创建层次结构。例如,爵士乐这个词将是 Bebop 和 Big Band 的父母。”slug_field_description
:编辑标签屏幕上 Slug 字段的说明。默认值:“« slug » 是名称的 URL 友好版本。它通常都是小写的,只包含字母、数字和连字符。”desc_field_description
:“编辑标签”屏幕上“说明”字段的说明。默认:“描述默认不突出;但是,某些主题可能会显示出来。”
Trac 上的相关工单:#43060。
用于获取文章现有修订版URL 的新函数:wp_get_post_revisions_url()
从 WP 5.9 开始,该wp_get_post_revisions_url()
函数可用于获取给定文章修订的链接。
参数:
$post_id
(可选):文章ID
或WP_Post
对象。默认为 global$post
。
此函数返回用于在给定文章(或null
其他方式)上编辑修订的 URL 。
Trac 上的相关票证:#39062。
WP 5.9 中新的内置文章类型
请注意,WordPress 5.9 引入了四种与新的完整站点编辑体验相关的新内置文章类型,并在激活块主题时使用。
wp_template
:要包含在您的主题中的模板。wp_template_part
:要包含在模板中的模板部件。wp_global_styles
:站点管理员为当前主题创建和保存的样式。wp_navigation
:可以插入站点的导航菜单。
将发布其他开发说明以介绍新的完整站点编辑体验。请注意,上述文章类型适用reserved terms
于 WordPress 内部使用。