JetpackのFacebookページウィジェットの表示を日本語にする

WordPressのプラグイン「Jetpack」をインストールすると、ウィジェットに「Facebookページプラグイン」が使えるようになる。

「これは便利だ!」とすぐにドラッグ&ドロップした結果、英語で表示されてしまった。
私もローマ字なら何でもオシャレに見える日本人特有のセンスを持ち合わせているので、カッコいい!とは思うけど、やっぱり日本のサイトだから日本語にしたい。

修正前:英語で表示されている

Facebookページプラグインの導入イメージ(英語表記)
ご覧の通り、英語で表示されている

上の画像は修正前。英語で表示されてしまっている。
そんなことより「いいね!」が1件もないことが気になるが、これも英語で表示されている弊害だと思う。

ちょっとでも可哀想だと思った人は「いいね!」してください

プラグインを修正して強引に直す

強引イメージ
どれくらい強引か分かりやすいイメージ

正直考えるのが面倒なのでプラグインを修正して強引に直すことにする。

今回修正したJetpackプラグインはバージョン3.9.1

修正するファイルは以下の通り。
./plugins/jetpack/modules/widgets/facebook-likebox.php

facebook-likebox.phpの修正箇所

286行目のguess_locale_from_lang関数を以下の通り修正する。

追記
Jetpackのバージョンが3.9.5に上がって、修正箇所が変更になった。
詳細は下記記事参照。
JetpackのFacebookページウィジェットの表示を日本語にする(バージョン3.9.5以降)

修正前:
function guess_locale_from_lang( $lang ) {
  if ( 'en' == $lang || 'en_US' == $lang || !$lang ) {
  return 'en_US';
  }

  if ( !class_exists( 'GP_Locales' ) ) {
  // 以下省略
修正後:
function guess_locale_from_lang( $lang ) {
  if ( 'en' == $lang || 'en_US' == $lang || !$lang ) {
    return 'en_US';
  }

  // 追加ここから↓ウィジェットの表示を日本語にする
  if ( 'ja' == $lang ) {
    return 'ja_JP';
  }
  // 追加ここまで↑

  if ( !class_exists( 'GP_Locales' ) ) {
  // 以下省略

解説

関数の引数である言語文字列を格納してる変数に日本語(ja)って入ってたら、Facebook用の言語文字列(ja_JP)を返すif文を追加しただけ。

実は上記のコードのちょっと後に、ちゃんと各言語対応するようなソースが入ってるんだけど、うまく動いてないようなので(引数にはja_JPを期待しているが、来るのはjaであるため)、追加ソースコードの上にある英語(en)のif文をパクって、お助け処理を追加することにした。

次のバージョンアップで何らかの修正がされていることを期待。

追記
Jetpackのバージョンが3.9.2に上がったけど、まだ解決されていない様子。

追記
Jetpackのバージョンが3.9.5に上がって、修正箇所が変更になった。
詳細は下記記事参照。
JetpackのFacebookページウィジェットの表示を日本語にする(バージョン3.9.5以降)

まとめ

HTTPS(常時SSL)サイト⇔Jetpack(WordPress.com)でうまく連携出来ていないことに原因があるのかもしれない。
また、基本的に外部プラグインはブラックボックスにしときたいので、この対応はイレギュラー。
でもまぁいっか。直ったし。

Facebookページプラグインの導入イメージ(日本語表示)

そんなことより誰か「いいね!」してくれないかな

投稿者: Output48

中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のSEを経て、独立。 ここ数年はWEB以外の仕事をしていたため、割と本気で勉強中。

“JetpackのFacebookページウィジェットの表示を日本語にする” への 2 件のフィードバック

  1. 初めまして!
    本記事と同じような状況で解決策を探していたのですが、無事解決できました!有益な情報ありがとうございます。

コメントを残す

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