表示系

プラグイン導入後タイトル・descriptionが変わる

WordPressのテーマにはSEO対策として適切なタイトル・descriptionを設定するものがあり、これらの機能を持つプラグインも多数あります。

それでも、特定のページ用にfunctions.phpで独自に設定が必要になることもあります。

functions.php で独自にタイトル・description をしていても、SEO対策用に入れたプラグインによってタイトル・description が上書きされ期待通りの結果とならない事があります。
今回は、Yoast SEO Plugin を入れたときに、functions.php で設定した独自のタイトル・description を有効にする方法について説明します。

<title>タグの修正

Yoast SEO Plugin では、’pre_get_document_title’・’wp_title’フィルターフックを使って<title>タグの出力を行っています。通常 functions.php で<title>タグを出力するのと同じです。

‘wp_title’フィルターフックは、Yoast SEO Plugin の frontend/class-frontend.php で設定されています。

add_filter( 'pre_get_document_title', array( $this, 'title' ), 15 );
add_filter( 'wp_title', array( $this, 'title' ), 15, 3 );

3番目のパラメータ(15)が優先順で数値の小さい順に実行されるため、Web 上での情報を参考に functions.php で

add_filter( 'pre_get_document_title', 'original_title', 10, 3 );
add_filter( 'wp_title', 'original_title', 10, 3 );

とした場合は、Yoast SEO Plugin の設定処理が後から実行されるため、functions.php での設定が残りません。

Yoast SEO Plugin の優先順より大きな値を指定する事で、functions.php での設定が有効になります。

add_filter( 'pre_get_document_title', 'original_title', 99, 3 );
add_filter( 'wp_title', 'original_title', 99, 3 );

meta description の修正

Yoast SEO Plugin では、

add_action( 'wp_head', array( $this, 'head' ), 1 );

で、登録された action 関数 head() から

do_action( ‘wpseo_head’ );

add_action( ‘wpseo_head’, array( $this, ‘metadesc’ ), 6 );
と処理が進んで、action 関数 metadesc() で meta description が設定されます。
metadesc() からさらに generate_metadesc() が呼び出されて、この関数の最後に

$this->metadesc = apply_filters( 'wpseo_metadesc', trim( $metadesc ) );

として、’wpseo_metadesc’ フィルターフックを呼び出しています。
‘wpseo_metadesc’ フィルターフックを登録する事で meta description を書き換えることが出来ます。

functions.php で

add_filter('wpseo_metadesc', 'original_description', 1);

として、original_description() 内で設定したい description を返すようにします。

その他の meta タグ

Yoast SEO Plugin では、この他に

  • meta property=”og:title”
  • meta property=”og:description”
  • meta name=”twitter:title”
  • meta name=”twitter:description”

が出力されます。
それぞれ以下のフィルターフックを登録する事で、独自のものに書き換えることが可能です。

add_filter( 'wpseo_opengraph_title', 'original_title', 99, 1 );
add_filter( 'wpseo_opengraph_desc', 'original_description', 99, 1 );
add_filter( 'wpseo_twitter_title', 'original_title', 1);
add_filter( 'wpseo_twitter_description', 'original_description', 1);

対応バージョン

調査したYoast SEO Plugin のバージョンは、5.4です。バージョンにより違いがあるかもしれませんので、対象コードがYoast SEO Plugin にあるか確認して下さい。

WordPressの不具合調査のことなら

WordPressの不具合調査は弊社におまかせください。


弊社が問題解決のお手伝いをします!


WordPressの不具合、エラーの原因を調査して特定します。


------------------------------------------


 

WordPressの不具合調査のご依頼、ご相談はこちらからどうぞ。


その他、ご不明点などがありましたらお気軽にお問い合わせ下さい。


お問い合わせ内容の確認後、3営業日以内に担当者よりご連絡させていただきます。


 

お問い合わせをする