Skip to content

Instantly share code, notes, and snippets.

@ShinichiNishikawa
Last active August 29, 2015 14:02
Show Gist options
  • Save ShinichiNishikawa/4e94aa284c182127dd83 to your computer and use it in GitHub Desktop.
Save ShinichiNishikawa/4e94aa284c182127dd83 to your computer and use it in GitHub Desktop.
Add locale to body_class
// add locale such as locale_ja, locale_en_US to body class
add_filter( 'body_class', 'add_body_class_locale' );
function add_body_class_locale( $classes ) {
$classes[] = 'locale_' . sanitize_html_class( get_bloginfo('language') );
return $classes;
}
@ShinichiNishikawa
Copy link
Author

これを追加すると、body_classにwp-config.phpで指定したWPLANGが足される。

@gatespace
Copy link

ちょっと検証してないのですが、デフォで英語版だと
http://codex.wordpress.org/Installing_WordPress_in_Your_Language
を見る限り define ('WPLANG', ''); で空みたい。
無いとは思うけど、WPLANG が定義されているかと空の場合の処理も足せば完璧かと。

@gatespace
Copy link

あと get_bloginfo('language') でも language とれます。
シングルインストールでBogoの様なプラグインを津亜kったばあいは未検証です。

@ShinichiNishikawa
Copy link
Author

なるほど!

@ShinichiNishikawa
Copy link
Author

修正中の発見シェア。
以下のようにしてみたら、locale_en-USが返された!

add_filter( 'body_class', 'add_body_class_locale' );
function add_body_class_locale( $classes ) {
    $locale = get_bloginfo('language') ? get_bloginfo('language') : 'none';
    $classes[] = 'locale_' . $locale;
    return $classes;
}

@ShinichiNishikawa
Copy link
Author

元の状態って残るの?

add_filter( 'body_class', 'add_body_class_locale' );
function add_body_class_locale( $classes ) {
    $classes[] = 'locale_' . WPLANG;
    return $classes;
}

@jim912
Copy link

jim912 commented Jun 16, 2014

sanitize_html_class

@ShinichiNishikawa
Copy link
Author

修正しました!!
sanitize_html_class 知らなかった!

@gatespace
Copy link

return sanitize_html_class ($classes);
のほうがよくね?

もしくは
$classes[] = sanitize_html_class( 'locale_' . get_bloginfo('language') );

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment