过滤WordPress标题(wp_title())

时间:2015-01-22 10:44:21

标签: php wordpress filter filtering title

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

我的自定义分类法被命名为“serie”。所以让我们说用户点击“XHTML和CSS”教程系列,他会得到这个:“XHTML和CSS |系列|网站名称”

“serie”(这是自定义分类名称)很突出,所以我想知道如何过滤掉它,所以它只是“XHTML和CSS |网站名称”。我在管理面板中的“serie”下创建了“XHTML和CSS”,例如“serie”将是“XHTML和CSS”,“C ++”,“PHP”,......

我使用此函数将其过滤掉,但它似乎不起作用(注意:它为该特定页面加载的模板是taxonomy-serie.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');

2 个答案:

答案 0 :(得分:2)

似乎你试图在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');

答案 1 :(得分:1)

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');