从主页上删除说明

时间:2016-02-26 作者:marcelo2605

我的主题支持标题标记add_theme_support(\'title-tag\'), 但我无法删除wordpress的描述bloginfo(\'description\') 从…起<title> 在主页上。

我正在尝试使用此筛选器,但未成功:

add_filter( \'wp_title\', function ( $title, $sep ) {
    global $paged, $page;

    $title .= get_bloginfo( \'name\' );

    if ( is_home() || is_front_page() )
        $title = "$title";

    return $title;
}, 10, 2 );

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

Found a solution:

add_filter( \'pre_get_document_title\', function ( $title ) {
    if(is_front_page()){
        $title = get_bloginfo();
    }
    return $title;
});
SO网友:jgraup

wp_get_document_title() 有一些有趣的过滤器-pre_get_document_titledocument_title_parts.

/**
 * Filter the parts of the document title.
 *
 * @since 4.4.0
 *
 * @param array $title {
 *     The document title parts.
 *
 *     @type string $title   Title of the viewed page.
 *     @type string $page    Optional. Page number if paginated.
 *     @type string $tagline Optional. Site description when on home page.
 *     @type string $site    Optional. Site title when not on home page.
 * }
 */
add_filter( \'document_title_parts\', function ( $title ) {

    if ( is_home() || is_front_page() )
        unset($title[\'tagline\']);

    return $title;

}, 10, 1 );
回顾这一点;这个pre_get_document_title 过滤器非常有趣。基本上,在处理标题之前,它将运行此过滤器。如果结果不是空的(这不是预期的),则进程短路。

$title = apply_filters( \'pre_get_document_title\', \'\' );
if ( ! empty( $title ) ) {
    return $title;
}
这意味着,如果定义了标题,就不必担心其他任何事情。好在你可以对规则进行例外。因此,要回答您最初的问题:

add_filter( \'pre_get_document_title\', function( $title ) {

    if ( is_home() || is_front_page() ) {

        // Return blog title on front page

        $title = get_bloginfo( \'name\' );
    }

    return $title;

} );

SO网友:fischi

问题在于线路:

$title = "$title";
你实际上只是改变了$title 对自己。如果您将其更改为

$title = get_bloginfo( \'name\' );
首页上返回的标题将是您博客的名称。你可以把任何绳子放在那里。此外,这里也没有必要调用globals。

下面是一些应该可以工作的代码:

add_filter( \'wp_title\', function ( $title, $sep ) {

    $title .= get_bloginfo( \'name\' );

    if ( is_home() || is_front_page() )
        $title = "Any string you want to have";

    return $title;

}, 10, 2 );