ただの備忘録。
WordPressのプラグインYoast SEOを使っているのですが、便利機能故にカスタマイズしにくい…と思いきや、ちょっとしたカスタマイズのためにTeam Yoastからフィルターが提供されていました。
フィルター一覧が載っています↓
http://hookr.io/plugins/yoast-seo/4.7.1/filters/
例えば私は別のプラグイン、Polylangで多言語サイトを作成しているのですが、固定ページには個別のtitle, descriptionを設定する箇所が管理画面下の方に用意してされているものの、
TOPページは管理画面サイドメニューのSEO>検索での見え方 から設定する仕様となっているため、英語ページのTOP(/en)でも日本語のmeta情報が採用されてしまうのです。
なので、上記サイトHOOKERからそれらしき単語を検索し(meta description関係はdescで出てくる)、欲しいフィルターかどうかチェックします。
以下、英語のトップページでのみtitleとmeta descriptionを変える場合のコードです。function.phpに記載しました。
function get_current_url() {
return(is_ssl()? 'https':'http').'://'.$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"];
}
$current_uri = get_current_url();
$home_uri = home_url('/');
// define the wpseo_title callback
function my_en_title($title) {
return 'Welcome to the new environment|Hellow World!';
}
// define the wpseo_metadesc callback
function filter_wpseo_metadesc( $trim ) {
// make filter magic happen here...
return 'Hellow world is a whole new approach to internet environments, one designed with the knowledge and know-how based on xxx years....';
};
if($current_uri == $home_uri.'en/' || $current_uri == $home_uri.'en') {
add_filter('wpseo_title', 'my_en_title');
add_filter( 'wpseo_metadesc', 'filter_wpseo_metadesc', 10, 1 );
}
参照: http://hookr.io/plugins/yoast-seo/4.7.1/filters/wpseo_metadesc/