多言語化プラグイン「bogo」でメニューの日英切り替え実装メモ

多言語サイトにしようとするといくつかプラグインがあるけれど、Contact Form 7の作成者さんが公開されていたbogoというのがシンプルで使い勝手よさそうでしたので、試してみたときの備忘録。

参考にしたのはForumでのやりとりです。
How to translate menus?

スポンサーリンク

function.phpに以下を追加して追加メニューを登録できるようにする。

register_nav_menu( 'en_US_Top-menu',  'Top Menu En' );
function add_language_prefix($menu_identifier) {
    global $post;
    $language_prefix = get_post_meta( $post->ID, '_locale', true );
    return $language_prefix . '_' . $menu_identifier;
}
add_filter('language_prefix_menu', 'add_language_prefix');

Menuで英語版を作成
bogo_add_en_menu

header.phpでこんな風にメニューを書いているところを

<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>

Localeによる条件分岐に変更します。

<?php $locale = get_locale();
	if ('en_US' == $locale  ) { ?>
<?php wp_nav_menu( array( 'theme_location' => apply_filters( 'language_prefix_menu', 'top-menu' ), 'menu_class' => 'nav-menu'  ) );?>
<?php } else { ?>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>
<?php } ?>

これで見事に英語のメニュー表示に成功しました。
bogo_fomplete_en

iPhoneから見ても、成功。
iphone_menu

同じ要領でSite Descriptionも出しわけできる。

ただ、カテゴリに記事がない場合、既存の固定ページがズラっと並んできたりする。
あと、YARRPも日本語記事が関連記事として出てくるのはどうにかならないものかな。

Language Switcherはウィジェットかショートコードで使える。
こちらが英語サイト(記事3つしかないですが・・・)
http://mylifeyourlife.net/en/

とりあえず何かの時のメモとして。


スポンサーリンク


多言語化プラグイン「bogo」でメニューの日英切り替え実装メモ」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)