为什么在函数.php中尝试捕获GET_TITLE时也会出现内部服务器错误?

时间:2018-06-07 作者:Adelin

我对PHP比较陌生;wordpress,但不用于编程。

我想拥有一个相对于$post 标题,所以我创建了以下过滤器并将其添加到functions.php:

add_filter(\'wp_title\', \'filter_pagetitle\');
function filter_pagetitle($title) {
    global $post;
    return $title . $post->post_title;
}
然而,标题仍然与$title, 没有与文章标题连接,所以我采用了另一种方法,使用get_the_title():

add_filter(\'wp_title\', \'filter_pagetitle\');
function filter_pagetitle($title) {
    global $post;
    return $title . get_the_title();
}
然而,这导致500 - internal server error (即使我替换为get_the_title($post->ID)), 因此,我想捕捉错误并将当前固定标题与"error":

add_filter(\'wp_title\', \'filter_pagetitle\');
function filter_pagetitle($title) {
    global $post;

    try {
        $toReturn = $title . get_the_title();
    } catch (Exception $e) {
        $toReturn = $title . " error";
    }
    return $toReturn;
}
但我仍然得到了500个内部服务器错误。我最后在标题中写下了这句话。php,最终有效:

 <title>Some fixed title | <?php echo get_the_title();  ?></title>
然而,为什么它在functions.php? 我是否错误地声明了新变量?还是我的串联操作不正确?

1 个回复
SO网友:Bikash Waiba

您可以避免在主题模板中使用硬编码的标题标记。仅使用theme support.

add_theme_support(\'title-tag\');
或者,如果你想使用title标签,那么你可以这样做。

<title><?php wp_title(\'|\', true, \'right\');?></title> 
然后,您可以将过滤器应用为

/**
 * Filters wp_title to print a neat <title> tag based on what is being viewed.
 *
 * @param string $title Default title text for current view.
 * @param string $sep   Optional separator.
 * @return string The filtered title.
 */
function wpdocs_theme_name_wp_title( $title, $sep ) {
    if ( is_feed() ) {
        return $title;
    }

    global $page, $paged;

    // Add the blog name
    $title .= get_bloginfo( \'name\', \'display\' );

    // Add the blog description for the home/front page.
    $site_description = get_bloginfo( \'description\', \'display\' );
    if ( $site_description && ( is_home() || is_front_page() ) ) {
        $title .= " $sep $site_description";
    }

    // Add a page number if necessary:
    if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) {
        $title .= " $sep " . sprintf( __( \'Page %s\', \'_s\' ), max( $paged, $page ) );
    }
    return $title;
}
add_filter( \'wp_title\', \'wpdocs_theme_name_wp_title\', 10, 2 );
请参见wp_title()

结束

相关推荐

Count identical post titles

我在WP网站上有一个评论部分。我想在“评论”类别中统计具有相同标题的帖子,并显示计数器。我用tag字段成功地做到了这一点: <?php global $post; $postslist = get_posts( array( \'post_type\' => \'reviews\', \'posts_per_page\' => 20, \'order\'=> \'ASC\'