【解決】WordPressにX(Twitter)を埋め込もうとして「重大なエラー」が出た時の対処法

IT
This article can be read in about 4 minutes.

Warning: Undefined array key "multiplier" in /home/c1854703/public_html/satosmemo.com/wp-content/plugins/custom-twitter-feeds/inc/CtfFeed.php on line 482

Warning: Undefined array key "multiplier" in /home/c1854703/public_html/satosmemo.com/wp-content/plugins/custom-twitter-feeds/inc/CtfFeed.php on line 482

自分のWebサイト(WordPress)のサイドバーに、X(旧Twitter)のタイムラインを表示させようとした際の備忘録です。

公式の埋め込みコードがうまく機能せず、代替策としてプラグインを導入したところ、今度は「重大なエラー」で管理画面が真っ白になるトラブルに遭遇しました。

結論から言うと、「WordPressの言語設定を一時的に英語にする」というワークアラウンドで解決できました。同じ現象で困っている方向けに、手順を残しておきます。

1. X公式の埋め込みコードでは表示されなかった

最初は、X公式のヘルプページ「Xのタイムラインを埋め込む方法」に従い、X Publish で埋め込みコードを取得しました。

しかし、これをWordPressのウィジェット(カスタムHTML)に貼り付けても、以下のようにテキストリンクが表示されるだけで、肝心のタイムライン(フィード)が表示されませんでした。

Tweets by (X id)

原因: 近年のブラウザ(SafariやChrome等)に搭載されている「トラッキング防止機能」や、X側のAPI仕様変更により、単なる埋め込みコード(スクリプト)はブロックされやすくなっています。特に、Xにログインしていない訪問者には何も表示されないケースも多いため、Webサイトのパーツとしては不安定です。

2. プラグイン「Custom Twitter Feeds」の導入とエラー

そこで、WordPressで定番のプラグイン「Custom Twitter Feeds (Smash Balloon)」を利用することにしました。

プラグインをインストールし、有効化までは順調でした。しかし、設定を行おうと管理画面の「Twitter Feeds」メニューをクリックした瞬間、画面が真っ白になり、以下のエラーメッセージが表示されました。

いわゆる「死の真っ白画面(White Screen of Death)」に近い状態です。焦りますが、サイトの表側(公開ページ)は無事でした。

3. エラーの原因は「日本語翻訳ファイル」

エラーログにある Unknown format specifier は、PHP 8.0以降で厳格化されたフォーマット指定のルールに関係しています。

調べてみたところ、このプラグインの日本語翻訳ファイルの中に記述ミス(不正なフォーマット指定子)が含まれていることが原因のようです。PHP 8系の環境下で、その誤った翻訳ファイルを読み込もうとした瞬間に処理が停止してしまっています。

つまり、「日本語で表示しようとするからエラーになる」わけです。

4. 解決策:一時的に英語環境で設定する

FTPでプラグインの中身を書き換えるのは手間ですし、アップデートで元に戻ってしまうリスクがあります。そこで、「設定する間だけWordPressを英語にする」という方法で回避しました。

手順は以下の通りです。

STEP 1: 言語設定を「English」に変更

WordPressの管理画面から 「設定」→「一般」 を開き、「サイトの言語」 を 『English (United States)』 に変更して「変更を保存」をクリックします。

STEP 2: プラグインを設定する

管理画面が英語になりますが、この状態で 「Twitter Feeds」→「All Feeds へアクセスします。英語環境であれば翻訳ファイルを読み込まないため、先ほどのエラーは発生しません。

  1. 「+ Add New」 ボタンをクリック。
  2. “Connect to Twitter using Smash Balloon” 画面にてメールアドレスを入力し、ドメイン検証およびサービス利用承認を行う。
  3. 「Connect to Twitter」 からアカウントを連携します。
  4. 連携が完了すると、埋め込み用の ショートコード(例: No feed found with the ID 1. Go to the All Feeds page and select an ID from an existing feed.

    )が発行されるので、これをコピーします。

STEP 3: 日本語に戻す

ショートコードさえ入手できればこっちのものです。 「Settings」→「General」 に戻り、Site Language を 『日本語』 に戻して保存します。

5. ウィジェットへの実装

最後に、コピーしておいたショートコードをサイトに埋め込みます。

  1. 「外観」→「ウィジェット」 を開く。
  2. サイドバーなどに 「カスタムHTML」 ブロックを追加。
  3. 先ほどのショートコード (例: No feed found with the ID 1. Go to the All Feeds page and select an ID from an existing feed.

    ) を貼り付けて保存。

これで、日本語環境のWordPressサイトでも、無事にXのタイムラインが表示されるようになりました。

まとめ

  • X公式の埋め込みコードは、ブラウザ環境によって表示されないことが多い。
  • プラグイン「Custom Twitter Feeds」は優秀だが、PHP 8系 × 日本語環境ではエラーが出る場合がある。
  • その場合、「設定時だけ言語を英語にする」 ことで回避できる。

もし同じエラー画面(Fatal error)に遭遇して行き詰まっている方がいれば、ぜひこの言語切り替えを試してみてください。

コメント

Copied title and URL