Bogo (多言語化プラグイン)でディスクリプションとタイトルを力技で解決する

2019.6.4

Bogoはめちゃくちゃ便利なプラグインなのですが、多言語化した「第二言語」でのタイトルやディスクリプションが難儀です。特にAll in one SEO何かと併用していると厄介です。言語ファイルに翻訳を追加するとか色々あるんですが、実は結構力技で解決することができます。

All in one SEOの設定

All in one SEOの設定で、

・元のタイトルを利用 > 有効

・タイトルの置き換え > 無効

・ディスクリプションを自動生成 > 有効

・自動生成に本文を使用 > 有効

とし、Wordpressの設定>一般のタイトルやキャッチフレーズは空白。All in one SEOでも何も記載しないようにしておきます。

header.phpに条件分岐を書く

        <?php if ( is_home() || is_front_page() ) : ?>
          <?php $locale = get_locale(); if( 'en_US' == $locale ): ?>
            <meta name="description" content="English description"/>
            <?php elseif($locale == 'ja'): ?>
            <meta name="description" content="日本語ディスクリプション"/>
          <?php endif; ?>
        <?php endif; ?>
   

こんな感じでヘッダーに追加します。

functions.phpを書き加える

All in one SEOのフックを利用して、フロントページではAll in one SEOのディスクリプションを「出さない」ようにします。重複しちゃいますのでね。

add_theme_support( 'title-tag' );

function my_description($description){
  if(is_home() || is_front_page() && !is_paged()){
    $description = '';
  }
  return $description;
}
add_filter('aioseop_description', 'my_description');

タイトルタグのサポートをONにして、All in one SEOのフックでディスクリプションを消します。これで完了。

タイトルがうまく出ない場合は試行錯誤してみてください。多分大丈夫だとは思いますが。