如何在标题中显示直系亲属和/或父母?

时间:2018-05-14 作者:glvr

我使用一个函数来修改各个页面的标题。

虽然它似乎可以工作,但它显示了一个调试错误。。。注意:未定义变量:parents\\u titles行xxx。

这将是因为我“知之甚少,危险之事”不知情地篡改了我开始使用的任何来源。

它需要什么改变?

function change_wp_title( $title ) {
    global $post, $paged;

    // All parents.
    $parents = get_post_ancestors( $post->ID );
    foreach ( array_reverse( $parents ) as $key => $parentpost ) {
        $postdata = get_post( $parentpost );
        $parents_titles .= $postdata->post_title . \' : \';
    }

    $parent_title = get_the_title($post->post_parent) . \': \';

    if ( is_404() ) {
        $title[\'title\'] = \'file not available\';
    } 
    elseif ( 4808 == $post->post_parent ) {
        $title[\'title\'] = \'About: Who: \' . $parent_title . $title[\'title\'];
    }

    // Various conditionals for other pages.

    else {
        $title[\'title\'] = $parents_titles . $title[\'title\'];
    }

    return $title;
}

add_filter( \'document_title_parts\', \'change_wp_title\', 20, 1);

2 个回复
SO网友:Nouniz

必须在foreach之前初始化变量$parents\\u titles

$parents_titles = \'\';

SO网友:Krzysiek Dróżdż

代码中的注意事项是由未定义的变量引起的。但还有一些事情可以做得更好一些。。。

function change_wp_title( $title ) {
    global $post, $paged;

    if ( is_404() ) {  // move this check here; if it\'s 404, there is no point in checking parents, ancestors, and so on
        $title[\'title\'] = \'file not available\';
        return $title;
    }

    $parent_title = $parents_titles = \'\';  // initialise titles with empty string

    // All parents.
    $parents = get_post_ancestors( $post->ID );
    if ( ! empty($parents) ) {  // check if $parents is not empty
        foreach ( array_reverse( $parents ) as $key => $parentpost ) {
            $parents_titles .= get_post_field( \'post_title\', $parentpost ) . \' : \';  // You don\'t have to get all fields for given post
        }
    }

    if ( $post->post_parent ) {  // check if there is parent
        $parent_title = get_the_title($post->post_parent) . \': \';
    }


    if ( 4808 == $post->post_parent ) {
        $title[\'title\'] = \'About: Who: \' . $parent_title . $title[\'title\'];
    }

    // Various conditionals for other pages.

    else {
        $title[\'title\'] = $parents_titles . $title[\'title\'];
    }

    return $title;
}
add_filter( \'document_title_parts\', \'change_wp_title\', 20, 1);

结束

相关推荐

Functions.php中的字符串转换不起作用

我在中使用了以下代码functions.php 要翻译一些文本:add_filter(\'gettext\', \'aad_translate_words_array\'); add_filter(\'ngettext\', \'aad_translate_words_array\'); function aad_translate_words_array( $translated ) { $words = array( // \'word to