过滤WordPress标题(wp_title())


Filtering WordPress title (wp_title())

我的标题标签由wp_title()函数组成。但是,在一个特定的页面上,它包含我的自定义分类名称,我想从标题中删除该名称。

我的自定义分类法名为"系列"。因此,假设用户点击"XHTML和CSS"教程系列,他会得到这个:"XHTML和CSS|意甲 |网站名称"

那个"系列"(这是自定义分类名称)突出了,所以我想知道我将如何过滤掉它,所以它只是"XHTML 和 CSS |网站名称"。我已经在我的"系列"下在管理面板中创建了"XHTML 和 CSS",因此例如"系列"将是"XHTML 和 CSS"、"C++"、"PHP"......

我使用这个函数来过滤它,但它似乎不起作用(注意:它为该特定页面加载的模板是分类系列.php):

function tutorials_wp_title( $title, $sep ) 
{
    global $page, $paged;
    $title = NULL;
    $term = $wp_query->queried_object;
    $current_serie = $term->name;
    $sep = '|';
    if ( is_page_template( 'taxonomy-serie.php' ) ) 
    {
        $title .= "$current_serie $sep ";
        $title .= get_bloginfo( 'name', 'display' );
    }
    return $title;
}
add_filter( 'wp_title', 'tutorials_wp_title');

似乎您尝试在 4.4 之后使用已弃用的 wp_title 钩子。

请参阅我的另一篇帖子:https://stackoverflow.com/a/34268098/2544762

如果您使用的是WordPress 4.4+,请尝试以下代码段:

function tutorials_wp_title( $title, $sep ) 
{
    global $page, $paged;
    $title = array();
    $term = $wp_query->queried_object;
    $current_serie = $term->name;
    if ( is_page_template( 'taxonomy-serie.php' ) ) 
    {
        $title []= "$current_serie $sep ";
        $title []= get_bloginfo( 'name', 'display' );
    }
    return $title;
}
add_filter( 'document_title_parts', 'tutorials_wp_title');
function tutorials_wp_title( $title, $sep ) 
{
global $page, $paged;
$title = NULL;
$term = $wp_query->queried_object;
$current_serie = $term->name;
$sep = '|';
if ( is_page_template( 'taxonomy-serie.php' ) ) 
{
    $title .= "$current_serie $sep ";
    $title .= get_bloginfo( 'name', 'display' );
}
$pos = strpos($title, "serie |");
if ($pos !== false) {
   $title = str_replace("serie |", "", $title);
}
return $title;
}
add_filter( 'wp_title', 'tutorials_wp_title');