質問するログイン新規登録

Q&A

2回答

171閲覧

WordPressのカスタムテーマでSEOプラグイン(RankMath)とタイトル生成が競合。priorityを上げる以外の正しい対処法はある?

ikechia

総合スコア0

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2026/08/24 18:00

0

0

実現したいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

guest

回答2

0

こんにちは。
Rank Mathでは専用のフィルターフックが提供されているようです。
https://rankmath.com/docs/filters-and-hooks/frontend/meta-data/
これによりpre_get_document_titleの上書きでは対応できなかったRank Mathのog:titleなどにも変更が適用されるはずです!

PHP

1add_filter('rank_math/frontend/title', function($title) { 2 if (is_singular('nenrei_year')) { 3 // ここに年ごとの動的タイトル生成ロジックを記述 4 return $custom_title; 5 } 6 return $title; 7});

投稿2026/08/25 03:36

yuyafujiwara

総合スコア148

0

WordPress 7.1、Rank Math SEO 1.0.276で確認しました。

まず、トップページとトップ以外のどれかのページで、HTMLソースを見てください。

  • titleタグが2重に出ていないか
  • titleタグと、metaタグや構造化データのタイトルが一致しているか

両方とも問題が無いなら、質問者さんの方法でよいと思います。そうでないなら、SEO的には駄目です。
Rank Math SEOの管理画面を見ると、タイトルの出し方は細かくカスタマイズできるので、こちらで調整すべきです。[Rank Math SEO]-[タイトルとメタ]配下の各メニューに目を通しましょう。

それでも上手くいかない場合、Orchardさんの回答の方法もあります。

私個人はSEO系のプラグインは不要だと思いますね。まず、効き目が怪しい。
これを自分の実験環境に入れてみましたが、タイトルのフォーマットを勝手に変えられた以外では、metaタグと構造化データを差し込まれるだけです。(デフォルト設定の場合)
これなら、自分でテーマをカスタマイズしても出せます。
最低限、必要な項目は、ググるかAIに聞くと教えてもらえます。

投稿2026/08/25 08:09

hiroki-o

総合スコア1902

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.25%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問