因为所有_wp_render_title_tag
是否检查title-tag
主题支持和包装<title>
标签,您的现有实现确实没有理由“不通过”,因为正确的实现已经通过以下途径完全相同:
<title itemprop="name"><?php echo wp_get_document_title(); ?></title>
何时
_wp_render_title_tag
是否:
echo \'<title>\' . wp_get_document_title() . \'</title>\' . "\\n";
(既然主题检查是一种指导性检查,那么如果它不能说明实际遵循了一个标准,那么从理论上讲,这不应该阻止它通过呢?)
但在任何情况下,您都可以通过添加自定义覆盖过滤器来绕过此问题,同时改进现有实现。。。通过取消挂接现有操作(正如@birgire所建议的)和(我的添加)挂接调用_wp_render_title_tag
并对其应用过滤器:
if (has_action(\'wp_head\',\'_wp_render_title_tag\') == 1) {
remove_action(\'wp_head\',\'_wp_render_title_tag\',1);
add_action(\'wp_head\',\'custom_wp_render_title_tag_filtered\',1);
}
function custom_wp_render_title_tag_filtered() {
if (function_exists(\'_wp_render_title_tag\')) {
ob_start();
_wp_render_title_tag();
$titletag = ob_get_contents();
ob_end_clean();
} else {$titletag = \'\';}
return apply_filters(\'wp_render_title_tag_filter\',$titletag);
}
因为无论如何,最好有一个可用的过滤器。。。。。。。然后,您可以使用新过滤器轻松添加自己的用例自定义:
add_filter(\'wp_render_title_tag_filter\',\'custom_wp_render_title_tag\');
function custom_wp_render_title_tag($titletag) {
$titletag = str_replace(\'<title>\',\'<title itemprop="name">\',$titletag);
return $titletag;
}
当然,如果将核心功能简单地更新为:
function _wp_render_title_tag() {
if ( ! current_theme_supports( \'title-tag\' ) ) {
return;
}
echo apply_filters( \'wp_render_title_tag\' , \'<title>\' . wp_get_document_title() . \'</title>\' . "\\n" );
}