如何修改我的类别档案页面上的标记?

时间:2021-02-22 作者:jchwebdev

我使用的是2016模板,它使用wp\\u head()来呈现标题标签。因此,对于类别页面,它会显示

 Articles about: whatever
如何修改此选项?

编辑:我最终做了这个黑客。我讨厌。。。

remove_action( \'wp_head\', \'_wp_render_title_tag\', 1 );
add_action( \'wp_head\', \'_wp_render_title_tag_jch\', 1 );

function _wp_render_title_tag_jch() {
    if ( did_action( \'wp_head\' ) || doing_action( \'wp_head\' ) ) {     
       $t = wp_get_document_title();
       if( strpos($t, \'Weekly Updates\',0) >= 0 )
          echo( \'<title>\' . \'Weekly Updates - Example Site\' . \'</title>\' . "\\n");
        else
          echo( \'<title>\' . $t . \'</title>\' . "\\n");              
    }
}

1 个回复
SO网友:Sally CJ

默认的WordPress主题(如2162和2121)使用automatic <title> tag feature (or the title-tag theme support) introduced in WordPress 4.1, 因此,使用该功能,如果要修改标题,则需要使用document_title_parts hook:

add_filter( \'document_title_parts\', \'my_document_title_parts\' );
function my_document_title_parts( $title ) { // $title is an *array*
    if ( is_category() ) {
        $title[\'title\'] = \'Posts in \' . single_cat_title( \'\', false );
    }

    return $title;
}

更新

实际上,看看编辑过的问题中的代码(或丑陋的黑客),我认为我上面的示例代码不起作用,因为is_category() 返回了一个false 这可能是因为;每周更新”;是一个页面(发布page 类型),而不是/category/<category slug>, e、 g。example.com/category/uncategorized.

所以让我这样说:对于像《二十一世纪》这样支持title-tag, 您应该使用document_title_parts 钩子过滤标题标签值,即。<title>THIS PART</title>. 但是对于修改标题的实际代码,如何编写代码将取决于您。

尽管如此,请尝试以下方法(并确保删除代码中的丑陋黑客):

add_filter( \'document_title_parts\', \'my_document_title_parts\' );
function my_document_title_parts( $title ) {
    if ( false !== strpos( $title[\'title\'], \'Weekly Updates\' ) ) {
        $title[\'title\'] = \'Weekly Updates\';
    }

    return $title;
}
/* NOTE: Try using a greater number as the callback priority, if the default (10)
 * doesn\'t work - example with 9999 as the priority:
add_filter( \'document_title_parts\', \'my_document_title_parts\', 9999 );
*/
请注意,挂钩有一个参数$title 它是一个数组,包含(但不是所有页面上的所有项目):

  • \'title\'(字符串)查看页面的标题
  • \'page\'(字符串)可选。页码(如果分页)
  • \'tagline\'(字符串)可选。主页上的站点描述
  • \'site\'(字符串)可选。不在主页上时的网站标题
此外,如果要更改标题分隔符(如-), 然后您可以使用document_title_separator filter.