2016
03/30

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

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

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

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

ADs

やろうとしたこと

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

ここで、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の返り値を調整します。

とすると

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

ADs

Post Comments

メールアドレスが公開されることはありません。

Comments

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