
サイトのサイトマップ自動生成からgoogleアナリティクスとの連携、さらにはページのmetaタグ(description, keyword)やページのタイトルまで、まるっとSEO関連設定を簡単に管理画面でできるようにするプラグインに「All in One SEO Pack」というプラグインがあります。
当社でもこのプラグインを重宝しています。
今回は、この「All in One SEO Pack」を利用してページのタイトルを管理しているサイトにおいて、特定のページだけページタイトルをカスタマイズする方法のご紹介。
たとえば固定ページのタイトルを「All in One SEO Pack」で管理したいなら、[一般設定]の[固定ページタイトルフォーマット]にフォーマットを設定しておこないます。
実際、当サイトの[固定ページタイトルフォーマット]は
%page_title% | %blog_title%
としています。
このようにすると、会社情報ページのページタイトルは「会社情報 | 100ウェブ」と出力されます。よしよし。
さて。当サイトには英語のページもありますが、英語ページのときはどうなるでしょうか?
たとえば、Design fee ページの場合--
Design fee | 100ウェブ
となります。
これは中途半端ですね。よくありません。英語はそんなに話せませんが、話せないならなおさらせめてテキストぐらい英語で貫きましょう。
カスタマイズしましょう。
当サイトの場合、英語サイトのトップのスラッグは en です。
そこで、先祖ページあるいは自ページのスラッグが en だったら、後ろの「 | 100ウェブ」を消せばいいわけです。
テーマのfunctions.phpに下記コードを追記します。
/* 英語ページのタイトルカスタマイズ */
add_filter( 'aioseo_title', 'customize_title'); //All in One SEO Packバージョン 4からaioseop_titleは非推奨になったのでaioseo_titleを使いましょう
function customize_title( $title) {
global $post;
$parents_id = get_post_ancestors($post->ID); // 配列で親IDを取得
$parent_slug = '';
$blog_info = '';
foreach($parents_id as $parent_id){
$parent_slug = get_post($parent_id)->post_name; // 親スラッグ
}
if($parent_slug=='en' || get_post($post->ID)->post_name=='en'){
// 先祖ページあるいは自ページのスラッグがenだったら
$blog_info = get_bloginfo('name','display'); //サイトタイトルを取得
$title = str_replace(' | '.$blog_info, '', $title);
}
return $title;
}
できました。
あとは、該当ページ編集画面で「All in One SEO Pack」のタイトル欄にしっかり英語のタイトルを付けて完成です。
これで、海外の方からもお問い合わせ来るかな?
WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!