使用筛选器修改wp_title时的限制

时间:2011-10-10 作者:Andy Adams

构建HTML时<title> 属性,我发现有一个方便的钩子可以修改wp_title.

然而,对主题的快速回顾表明,使用这个钩子并不是常见的做法。事实上,若你们看一下TwentyEleven,你们会在标题中看到这个。php:

<title><?php
    /*
     * Print the <title> tag based on what is being viewed.
     */
    global $page, $paged;

    wp_title( \'|\', true, \'right\' );

    // Add the blog name.
    bloginfo( \'name\' );

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

    // Add a page number if necessary:
    if ( $paged >= 2 || $page >= 2 )
        echo \' | \' . sprintf( __( \'Page %s\', \'twentyeleven\' ), max( $paged, $page ) );

?></title>
在我看来,这可能会functions.php, 并替换为:

(在functions.php中)

add_filter( \'wp_title\', \'twentyeleven_title_filter\' );

function twentyeleven_title_filter( $title ) {
    // All that title logic here
}
(在header.php中)

<title><?php wp_title(); ?></title>
我对主题开发相当陌生,所以如果这是常识,请原谅我-但为什么不在过滤器中而不是在标题中修改wp\\u标题?有什么限制吗?

关于wp\\U的标题,在this ticket, 但从我所能收集到的信息来看,这个过滤器似乎仍然可以工作——我错了吗?

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

我已经有一段时间没有问这个问题了,我在这个时间框架内构建了几个主题。我想到的答案是“使用过滤器”。这样做没有限制,而且它使其他开发人员的工作更加容易,因为他们只需要过滤输出(而不是尝试进行输出缓冲)。

简而言之,只需过滤它!

结束