【WordPress】Yoast SEOでタイトルタグをfunctions.phpから変更する
WordPress

【WordPress】Yoast SEOでタイトルタグをfunctions.phpから変更する

Yoastが出力しているタイトルタグ、メタタグ等をfunctions.phpから修正したい場合の方法です。
Yoast SEOと他のプラグインがバッティングしていて、管理画面からカスタマイズできないときに使えます。


対応前

Search & Filterという検索用のプラグインを入れていて、検索結果ページのタイトルタグ等を修正したかったのですが、下記の対応をしてもYoast SEOが上書きしてしまい、希望通りのタイトルに上書きされません。

add_filter('wp_title','search_form_title');

function search_form_title($title){
 
 global $searchandfilter;
 
 if ( $searchandfilter->active_sfid() == 35889)
 {
 return 'Search Results';
 }
 else
 {
 return $title;
 }
 
}

https://searchandfilter.com/documentation/search-results/as-an-archive/
wp_titleはWordPress本体が提供しているフィルター。

解決

Yoast SEOが提供しているフィルターwp_seotitleと上記コードを組み合わせると解決できました。タイトルタグと同時にwpseo_opengraph_titleフィルターを使用してog:titleも変更しました。

// 検索結果ページのタイトルを書きかえる
function search_form_title($title){
 global $searchandfilter;
 if($searchandfilter) {
// 書き換えたいページの条件
  if ( $searchandfilter->active_sfid() == 84) 
  {
  return '検索結果 - サイト名';
  }
  else
  {
  return $title;
  }
 } else {
// 該当しない場合はデフォルトのタイトルを返す
   return $title;
 }
}
add_filter('wpseo_title','search_form_title');
add_filter('wpseo_opengraph_title','search_form_title');


その他ディスクリプション等も書き換えたい場合は下記のURLが参考になります。
hooker.io
http://hookr.io/plugins/yoast-seo/4.7.1/filters/

Yoast SEO公式
https://developer.yoast.com/

~~ END ~~