web-dev-qa-db-ja.com

WP ヘッダ出力と記事出力の前にタイトルを修正するアクション/フィルタ?

カスタムプラグインを使って2つのバージョンの投稿タイトルを分割テストします。これまでのところ、ページが出力される前に、メタタグレベルでタイトルを変更するための適切なフィルタやアクションを見つけることができませんでした。

私が見つけたものはフィルタthe_titleですが、それは記事の内容の中だけでそれをするように見えます、そして、彼は文書の頭ではありません。

http://codex.wordpress.org/Plugin_API/Filter_Reference/the_title

これは適切なフィルタですか。選択した操作を実行するには、テーマテンプレートを変更する必要がありますか?テーマを変更せずにプラグインから厳密にこれを実行できますか?

?title_ver=1などのGET変数が設定されているかどうかを確認し、設定されている場合は、代替タイトルの適切な投稿メタ値を取得します。

非作業コード

    function custom_modify_title( $title, $id = null ) {
        return 'CUSTOM '.$title;
    }
    add_filter( 'wp_title', 'custom_modify_title', 10, 2 );
    add_filter( 'the_title', 'custom_modify_title', 10, 2 );
1
user3657553

フィルタwp_titleは、呼び出されたときに関数 wp_title() のみを変更します。

ですから、あなたのヘッダがwp_titleを使う前に、あなたはあなたのテーマのソースコードを再チェックしなければなりません。

とにかく、 functions.php にフィルタを設定できます。あなたのparam GETを識別するための関数はそのようなものであるべきです:

function maybe_change_wp_title_ver( $title, $sep ) {

    if ( isset( $_GET['title_ver'] ) && 1 === $_GET['title_ver'] ) {
        $title = 'My New Title';
    }

    return $title;
}

add_filter( 'wp_title', 'maybe_change_wp_title_ver', 99, 2 ); //99 is set as priority (read comments)
1
Leo Caseiro