wp_get_document_title()をtitleとそれ以外で違う結果を出力する

WordPress4.4よりタイトルを出力するwp_get_document_title()という関数が用意されました。

wp_get_document_title()についてはねんでぶろぐ様の記事が詳しいです。
WordPress 4.4 から wp_title関数が 非推奨になりました

特に手を入れなくてもいい感じにタイトルを出力してくれる便利な関数ですので、title以外にもページの見出しなどでも使おうとしたのですが、titleとそれ以外で条件分岐しようとして悩みました。

AD

やろうとしたこと

と記述すると、トップページの結果は以下のようになります。

ここで、titleには「ブログ説明文」はほしいけどh1にはいらないんだよな…と思ってdocument_title_partsにフィルターフックを適用したとしても、どちらも同じdocument_title_partsを使っているためtitle,h1いずれも変更されてしまいます。

こんなフィルターフックを書くと

結果はこうなります。そりゃそうだ。

この場合wp_get_document_title()を使いつつh1だけ出力結果を修正する場合、どうしたらいいのか。

答え:doing_action()を使う

doing_action()は関数が実行中かどうかを判定する関数です。返り値はtrue/falseになりますのでif文の中で使えます。

この関数を使い、wp_head()が実行されているかどうかを判定し、document_title_partsの返り値を調整します。

とすると

となります。
同じ関数ですが異なる返り値を出力することができました!

AD

Share

Commentsコメント

メールアドレスは公開されません。コメントは必ずご入力ください。

HTMLタグは使用できません。ソースコードを書き込みたい場合はCodetterGistCodePenなどのご利用が便利です。

コメントはまだありません。