WordPress4.4以降でカスタムフィールドを使い、投稿ごとにタイトルタグを自由に編集する方法(フィルターフック使用)

2ヶ月くらい前に『WordPress4.1以降でカスタムフィールドを使い、投稿ごとにタイトルタグを自由に編集する方法(フィルターフック使用)」という記事を書いて、さらにこれをプラグイン化したものもリリースしたんですが、つい今週WordPress4.4がリリースされたら、あっさりフックが変わってしまったので、早速修正することになりました。

新フックその1 pre_get_document_title

タイトルタグ書き換えの仕様としては、前回の記事と全く同じですのでそちらを参照してください。

今まで使っていた
add_filter( 'wp_title', 'mypace_custom_title', 10, 2 );

のフィルターフックが4.4で変わってしまったので、このままではタイトルタグの変更が反映されません。
wp_titleの部分を新しいフック pre_get_document_titleに書き換えれば反映されます。

新フックその2 document_title_parts

サイト名の出力はそのままで、投稿名だけ変更する「その2」の場合はこうなります。

タイトルタグの個別の要素別に上書きできる document_title_parts フックで投稿名のみ書き換えています。
$title['title'] の他にも、

  • $title['site'] (サイト名)
  • $title['tagline'] (フロントページで表示されるサイトのキャッチフレーズ部分)
  • $title['page'] (ページ送り時の2ページ目以降の表示)

の4種類の要素を上書きできます。
(※ただし’tagline’は標準だと、フロントページが「最新の投稿」の時のみの出力になってますね。今までは、固定ページをフロントページにしていてもキャッチフレーズが出力されていたのですが。)

4.3.1以下への後方互換を保ちたい場合

自分の環境であればそのまま書き換えればいいんですが、プラグインだとある程度後方互換も保たないといけないので、バージョンによる分岐を追加しています。

自分のサイトでもバージョンチェックをやりたい人はこんな感じにしてください。

関連情報

昨日タイトルタグ周りのフックの修正についてブログ書こうとしたところ、もう既に10月11月の時点で書いてる人がいたのでやめたんですね。
でも、古いコードを紹介してしまっている以上、フォローしておかねばいけない気がしたので最低限のところだけ書きました。
もっと詳しく知りたい(日本語で)という方は以下のページを参考にどうぞ!

活用事例 WordPress4.4でタイトルタグのセパレータが’ – ‘になったのを’ | ‘に戻す

以上です。

さいごに、私以外にも1日1回くらいDLしてくれてる人いるみたい。
プラグイン使ってくれてる人ありがとう。

コメントをどうぞ

メールアドレス (必須・公開されません)
コメント本文

  • スパム・迷惑コメント投稿防止のため、メールアドレスの入力が必須ですが、公開はされません。何卒ご協力のほどお願いいたします。
  • 投稿いただいたコメントは管理者のチェック後掲載しておりますので、即時には反映されません。
  • 記載内容に関する批判や間違いの指摘などはそのまま掲載する方針ですが、投稿内容と無関係な誹謗中傷、一方的な罵詈雑言の場合は削除させていただく可能性があります。
  • 通常業務の合間にコメントチェックをしておりますので、すべてのコメントへのお返事が出来ない場合もございます。あらかじめご了承ください。
  • 管理人個人への連絡等は、コメント欄ではなくコンタクトフォームをご利用ください。

今年もスタッフしました!

書籍を執筆しました

WordPress 標準デザイン講座【Version 4.x対応】


翔泳社さんより、2015/02/27発売です。

寄付歓迎(・ω<)☆

当ブログの記事があなたの役に立ったら、気が向いたらでいいのでドネーションいただけると更新の励みになります!
気が向いた方はこちらから

ブログ内検索