自分のWebサイト(WordPress)のサイドバーに、X(旧Twitter)のタイムラインを表示させようとした際の備忘録です。
公式の埋め込みコードがうまく機能せず、代替策としてプラグインを導入したところ、今度は「重大なエラー」で管理画面が真っ白になるトラブルに遭遇しました。
結論から言うと、「WordPressの言語設定を一時的に英語にする」というワークアラウンドで解決できました。同じ現象で困っている方向けに、手順を残しておきます。
この記事でわかること
- WordPressにXのタイムラインを埋め込む際、公式コードが機能しない理由
- プラグイン「Custom Twitter Feeds」でPHP 8系 × 日本語環境のエラーが出る原因
- 言語を一時的に英語に切り替えることでエラーを回避する手順
筆者環境:ConoHa WING / WordPress 6系 / PHP 8.4 / Cocoonテーマ
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」 へアクセスします。英語環境であれば翻訳ファイルを読み込まないため、先ほどのエラーは発生しません。

- 「+ Add New」 ボタンをクリック。
- “Connect to Twitter using Smash Balloon” 画面にてメールアドレスを入力し、ドメイン検証およびサービス利用承認を行う。
- 「Connect to Twitter」 からアカウントを連携します。
- 連携が完了すると、埋め込み用の ショートコード(例:
[custom-twitter-feeds feed=1])が発行されるので、これをコピーします。

STEP 3: 日本語に戻す
ショートコードさえ入手できればこっちのものです。 「Settings」→「General」 に戻り、Site Language を 『日本語』 に戻して保存します。
5. ウィジェットへの実装
最後に、コピーしておいたショートコードをサイトに埋め込みます。
- 「外観」→「ウィジェット」 を開く。
- サイドバーなどに 「カスタムHTML」 ブロックを追加。
- 先ほどのショートコード (例:
[custom-twitter-feeds feed=1]) を貼り付けて保存。

これで、日本語環境のWordPressサイトでも、無事にXのタイムラインが表示されるようになりました。
2026年時点での状況:このプラグインは使い続けられるか?
この作業をしたのは2021年ですが、2026年時点でのX(旧Twitter)連携プラグインの状況についても触れておきます。
X APIの有料化による影響
2023年以降、X(旧Twitter)はAPIの無料プランを大幅に制限しました。「Custom Twitter Feeds」のような外部プラグインがXのタイムラインを取得するためには、有料のX APIアクセスが必要になっています。
具体的には以下のような変更がありました。
- 無料プラン(Free tier):読み取りAPIがほぼ使えなくなった(月500ツイートの書き込みのみ)
- Basic(有料):月100ドル程度。個人ブログのサイドバー装飾には費用対効果が合わない
- プラグイン側の対応:Smash BalloonはX APIに依存するため、無料での利用は事実上不可能になった
2026年時点での代替案
個人ブログのサイドバーにSNSの存在感を出したい場合、現実的な代替手段は以下のとおりです。
| 方法 | コスト | 難易度 | 特徴 |
|---|---|---|---|
| XのプロフィールページへのリンクをサイドバーにHTMLで貼る | 無料 | 低 | シンプルで確実。タイムラインは表示されない |
| Xプロフィールページへのリンクバナーを自作 | 無料 | 低〜中 | 見た目を整えたい場合に |
| Instagramのフィード(無料プラン)を表示 | 無料 | 低 | Instagram運用者向け。APIは現在も無料枠あり |
| X APIのBasicプランを契約 | 月100ドル〜 | 高 | タイムライン表示が本当に必要な場合のみ |
現実的には、サイドバーにXアカウントへのリンクを置く程度が、コストと手間のバランスとしてベストだと思います。筆者自身も現在はシンプルなリンクのみ使用しています。
Xとは別の話ですが、Gmailの通知が増えて受信トレイが溢れている方には、GASとスプレッドシートでGmailを自動仕分けする方法もおすすめです。
まとめ
- X公式の埋め込みコードは、ブラウザ環境によって表示されないことが多い。
- プラグイン「Custom Twitter Feeds」は優秀だが、PHP 8系 × 日本語環境ではエラーが出る場合がある。
- その場合、「設定時だけ言語を英語にする」ことで回避できる。
- ただし、2023年以降のX API有料化により、このプラグインを無料で使い続けるのは困難になった。2026年現在、個人ブログではリンクボタン設置が現実的。
もし同じエラー画面(Fatal error)に遭遇して行き詰まっている方がいれば、ぜひこの言語切り替えを試してみてください。また、今後Xのフィードをどう扱うか迷っている方の参考にもなれば幸いです。


コメント