JavaScript, PHP, React, WordPress

Google Site Kitとわしのプラグインが戦争してました。

犯人は名言と天気

今回、俺が試していたWordPressサイトでGoogle Site Kitが「インストール失敗」「無効なJSONレスポンス」「undefinedエラー」を連発。

でもwp-jsonは生きてる。パーミッションも問題なし。じゃあなんだよってことで、不安に思ってた。


結論。原因は自作のReactプラグイン

お前のせいかーーーーーーっ!!(作った俺がぜんぶわるい(笑))

機能は「今日の名言と天気をダッシュボードに表示する」こと、

Reactを使って何か作ってみたかったからWordPressのプラグインにしてみた。
色々ためして「もしや」と思ってこいつを無効化したらSite Kitはみるみる再起動した。


何が問題だったのか

悪さそうなポイント:

  • admin_enqueue_scriptsで意図しない場所でReactを読み込む
  • functions.phpやプラグインの中で echo してる
  • REST APIのレスポンスを破壊

Google Site Kitは、アカウント連携やAPI認証でREST APIを使うので、
1行の不要な出力でも失敗する


対策

「日常」のプラグインを作る時は、これを必ず定数のテストで確認する:

  • サイト全体が正常動作するか
  • REST API(
    /wp-json/) にエラーなし
  • admin_enqueue_scriptsの読み込みは適切か
add_action('admin_enqueue_scripts', function($hook){
    if ($hook === 'index.php') {
        wp_enqueue_script(...);
    }
});

まとめ

「不具合の犯人は意外と味方にいる」

この失敗から得た教訓はでかい。
でも同時に、自分で作ったプラグインが、それだけWordPressコアの深部まで展開してる。そんな存在に成長した。これだけは言える。