如果您想以最原始的方式自定义标题,可以为document_title_parts
remove_filter( \'document_title_parts\', \'genesis_document_title_parts\' );
add_filter( \'document_title_parts\', \'custom_document_title_parts\' );
function custom_document_title_parts( $parts ) {
$genesis_document_title_parts = new Genesis_SEO_Document_Title_Parts();
$custom_document_title_parts = $genesis_document_title_parts->get_parts( $parts );
$custom_document_title_parts[\'title\'] = \'Hello world\';
return $custom_document_title_parts;
}
在最新版本的《创世纪》中,
do_action( \'genesis_title\' );
在中找到
genesis/header.php
实际上什么都没做。从未向添加任何操作
genesis_title
在最新版本中。
相反<title>
正在呈现为wp_head();
在里面header.php
, 按标准。
Genesis通过添加过滤器自定义标题genesis_document_title_parts
到\'document_title_parts
位于genesis/lib/structure/header.php
.
要了解其工作原理,您需要知道document_title_parts
正在做。你会在wp-includes/general-template.php
在功能范围内wp_get_document_title()
作为标题文本清理和返回之前的最后一步。因为Genesis正在向该步骤添加一个过滤器,所以它可以使用他们选择的任何自定义值覆盖标题。
如果你继续遵循逻辑,你会发现wp_get_document_title()
负责创建中使用的标题wp_head
.
如果你想知道怎么做,看看/wp-includes/default-filters.php
. 已将操作添加到wp_head
对于_wp_render_title_tag
. 这个函数简单地包装了wp_get_document_title()
在里面<title>
标签。
回到Genesis如何使用此功能自定义标题,回想一下genesis_document_title_parts
已作为筛选器添加到document_title_parts
.
genesis_document_title_parts
是一个返回自定义SEO标题的函数,如果该标题在数据库中可用。它使用类Genesis_SEO_Document_Title_Parts
在中找到genesis/lib/classes/class-genesis-seo-document-title-parts.php
.