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 ~~