web-dev-qa-db-ja.com

フィルタでwp_titleを修正するときの制限

テーマの中でHTMLの<title>属性を構築するとき、 wp_title を変更するための便利なフックがあることがわかりました。

ただし、テーマを簡単に見直すと、このフックを使用することは一般的ではないことがわかります。実際、TwentyElevenを見ると、header.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_titleを変更しないのはなぜでしょうか。どこかに制限はありますか?

このチケットで 進行中のwp_titleについて少し議論がありますが 、私が集めることができるものからそれはまだフィルタがうまくいくように聞こえます - am私は違いますか?

1
Andy Adams

私がこれを聞いてからしばらく経ちました、そして私はその期間内にいくつかのテーマを構築しました。私が思いついた答えは「フィルタを使う」です。これを行うことに制限はありません、そしてそれは彼らが出力をフィルターにかけることだけを必要とするので(それは出力バッファリングをすることを試みることに対して)他の開発者の仕事をずっと容易にします。

一言で言えば、それをフィルタリングするだけです

1
Andy Adams