WordPress
カスタマイズ事例

WORDPRESS CUSTOMIZATION

【All in One SEO Pack 利用者向け】ページタイトルの個別カスタマイズ

サイトのサイトマップ自動生成から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」のタイトル欄にしっかり英語のタイトルを付けて完成です。
 
これで、海外の方からもお問い合わせ来るかな?

【100ウェブ新着情報メルマガ】

WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!