実現したいこと
WordPressのカスタムテーマで、カスタム投稿タイプごとに動的に生成したタイトルを、SEOプラグイン(RankMath)導入後も確実にそのまま出力させたい。
発生している問題・分からないこと
RankMath導入後、pre_get_document_titleフィルターで生成した独自タイトルが、RankMath側の汎用テンプレートに上書きされてしまいました。add_filterの第3引数(priority)を9999まで上げることで意図通りに動作するようにはなりましたが、これは力技での対処だと感じています。RankMathにはrank_math/frontend/descriptionのように値を直接渡せるフィルターがあると認識していますが、タイトルについても同様に、RankMath側の仕組みに乗せる形で自分のタイトルを渡せる、より正式な方法があるのか知りたいです。(Yoast SEOなど他のSEOプラグインでも同様の仕組みがあれば併せて知りたいです)
実際に発生している環境:nenreihayamihyou.net(年齢早見表サイト、107以上程度ページのカスタム投稿タイプに適用)
該当のソースコード
PHP
1function my_year_document_title($title) { 2 if (!is_singular('nenrei_year')) return $title; 3 return $custom_title; // 年ごとに動的生成 4} 5add_filter('pre_get_document_title', 'my_year_document_title'); 6
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
WordPressやRankMathの「タイトル 上書き」といったキーワードで検索し、SEOプラグインが独自のタイトル生成ロジックを持っていることは分かりましたが、RankMath側の具体的な優先度の値や、正式な回避方法についての情報は見つけられませんでした。
また、add_filterの第3引数(priority)を10(デフォルト)から9999に変更したところ、意図通りテーマ側のタイトルが優先されるようになりました。ただし、これが正しい対処法なのか、たまたま動いているだけなのか判断がつかず、より確実な方法があればご教示いただきたいです。
補足
WordPress:6.x系(テーマは自作のカスタムテーマ)
SEOプラグイン:Rank Math SEO