在wp_title中包括类别标题

时间:2013-06-02 作者:AlecRust

我用这个functions.php 输出我的页面<title>:

/**
 * Creates a nicely formatted and more specific title element text
 * for output in head of document, based on current view
 *
 * @param string $title Default title text for current view
 * @param string $sep Optional separator
 * @return string Filtered title
 */
function sitename_wp_title( $title, $sep ) {
    global $paged, $page;

    if ( is_feed() )
        return $title;

    // Adds the site name
    $title .= get_bloginfo( \'name\' );

    // Adds the site description for the front page
    $site_description = get_bloginfo( \'description\', \'display\' );
    if ( $site_description && ( is_front_page() ) )
        $title = "$title $sep $site_description";

    // Adds a page number if necessary
    if ( $paged >= 2 || $page >= 2 )
        $title = "$title $sep " . sprintf( __( \'Page %s\' ), max( $paged, $page ) );

    return $title;
}
add_filter( \'wp_title\', \'sitename_wp_title\', 10, 2 );
我想包括top level category name 在子页上。

例如,当前具有以下站点结构:

“大”类别中的帖子将输出如下页面标题:

<title>$postname | $blog_name</title>

我希望输出为:

<title>$postname | Work | $blog_name</title>

因此会添加顶级类别名称,但不会添加二级类别(大型)。

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

创建助手函数以获取所有父类别(每个帖子可以包含多个类别):

function parent_cat_names( $sep = \'|\' )
{
    if ( ! is_single() or array() === $categories = get_the_category() )
        return \'\';

    $parents = array ();

    foreach ( $categories as $category )
    {
        $parent = end( get_ancestors( $category->term_id, \'category\' ) );

        if ( ! empty ( $parent ) )
            $top = get_category( $parent );
        else
            $top = $category;

        $parents[ $top->term_id ] = $top;
    }

    return esc_html( join( $sep, wp_list_pluck( $parents, \'name\' ) ) );
}
将父术语添加为…

if ( \'\' !== $parent_cats = parent_cat_names( $sep ) )
    $title .= "$parent_cats $sep ";

结束

相关推荐

Page Title repeating

我是WordPress的新手,我们的网站页面标题不断重复。这是第一个问题。第二个问题似乎是重复之间缺少一个空间。我附上了一张图表来说明这个问题。在附图中,请注意,在Chrome的左上角,我们的博客名为“Snowball blog”。之后没有空间,而是没有空间,然后我们有了博客的副标题(在本例中是托管)。在单词hosting之后,会出现“>>Snowball Blog”。所有页面都会出现这种情况,例如,“Snowball Blog与团队见面>>Snowball Blog”。我不太熟悉