Warning: Undefined array key "snippetVars" in /home/pxa/wnkhs.net/public_html/wp-content/plugins/post-snippets/src/PostSnippets/PSallSnippets.php on line 721
Warning: Undefined array key "snippetVars" in /home/pxa/wnkhs.net/public_html/wp-content/plugins/post-snippets/src/PostSnippets/PSallSnippets.php on line 721

投稿ページに謎のメッセージが表示されていることに気付きました。
プラグイン「PostSnippets」で何かが発生していたようです。
問題は解決できましたので、記録を残しておきます。

WordPress
プラグインのエラー
(PostSnippets)
ブログのCMSはWordPressです。
いくつかのプラグインを使っており、そのうちのひとつ「PostSnippets」で何かが起こったようです。
プログラムの中身が分かるわけではないので、状況から判断できた対処の記録です。
解決済みです。
「Warning」とのこと
投稿を表示すると、冒頭に「Warning」メッセージが表示される問題が発生しておりました。
エラーですよね。
警告ですが。
ユーザーに無関係なメッセージが表示されているということで、大問題です。

メッセージの中身を解釈すると、PostSnippetsの構成ファイルのうちの何かで、配列か何かのキーが見つからないとか定義されていないとか、そういったことだと思いました。
Warning: Undefined array key "snippetVars" in /home/pxa/wnkhs.net/public_html/wp-content/plugins/post-snippets/src/PostSnippets/PSallSnippets.php on line 721
PHPファイルの中身は見たところで分かりませんし、自分で手を入れるとプラグインの意味がないので。
状況に対処する方針になりました。
警告を表示するようなかたちにはしてほしくないですね。
変数不足?
メッセージが表示されるページと表示されないページがありました。
表示されるページは問題あり、表示されないページは問題なしということで、コードを確認してみたところ、法則を見出すことができました。
表示されているメッセージからも、なんとなく分かることがあります。
手元での表示内容も見つつ、解釈できました。
配列のキーになっている「snippetVars」がないということですよね。
プラグインの詳細仕様を理解できていませんが、必須項目とかいったことなのでしょう。
最近になってメッセージが表示されるようになりましたので、仕様変更があったのでしょうか。。
ブロックエディターで再選択や、ブロックを削除 → 新規でも解決できたのですが。
複数ページで発生している問題には対応できません。。
コードを見て分かったこと: たしかに値がない
問題なしのコードと問題ありのコードを見比べて、たしかに「snippetVars」の指定がないということが分かりました。
それでも一筋縄ではいかなかったわけです。
2パターンあったのです!
ブロックエディターの右上メニューから、コードエディターを選択することで、コードを確認できます。
キーボードショートカットは、Ctrl + Shift + Alt + M です。
パターン1: ID指定だけ
IDだけが指定されているようなものがありました。

<!-- wp:greentreelabs/post-snippets-block {"snippetID":"1"} /-->
ビジュアルエディターの見た目では、IDさえ指定されていればよいのかもしれないですね。
ページ表示の際の処理においては、警告メッセージに表示されているようなファイルの中で引数が渡されなくて困ってしまうのでしょう。
パターン2: 引数が指定されていない
引数がいろいろと指定されているのですが、当該名称のもの(snippetVars)が含まれていないものがありました。
<!-- wp:greentreelabs/post-snippets-block {"snippetID":"1","snippet":"PS-Ad-inline","shortcode":true,"text_fields":[]} -->
<div class="wp-block-greentreelabs-post-snippets-block">[PS-Ad-inline ]</div>
<!-- /wp:greentreelabs/post-snippets-block -->
たしかにありません。
ビジュアルエディターの見た目では、こういった指定でもよいのでしょう。
ページ表示の際の処理においては、警告メッセージに表示されているようなファイルの中で引数が渡されなくて困ってしまうということですね。
対処: 正しいコードに置き換える
原因が分かりましたので、問題のコードを置き換えていきます。
問題なしのコードを確認すると、空の配列を渡すことになっているようです。
意味がないなら指定なしでもよいようにしていただきたいものです。。
コードの確認と実験
問題なしのコードは以下です。
<!-- wp:greentreelabs/post-snippets-block {"snippetID":"1","snippetVars":{},"snippet":"PS-Ad-inline","shortcode":true,"text_fields":[]} -->
<div class="wp-block-greentreelabs-post-snippets-block">[PS-Ad-inline ]</div>
<!-- /wp:greentreelabs/post-snippets-block -->
"snippetVars":{} の部分で指定しているのですね。
これを見る限り、空の配列を書いているだけです。
使わないならデフォルト値をnullとかで決めていただいてもよかったのではないかと思ってしまいます。
Search Regex で一括置換
コードの置き換えですので、置換できるプラグインを使います。
手元環境では「Search Regex」を使っています。

コードであっても置き換えできます。
正規表現などの設定は確認しておきましょう。
(今回は大丈夫でしたが、文字の種類によっては問題になりかねません。)
複数パターンでしたので、パターンごとに置き換えました。
解決できたと信じています
警告文は表示されなくなっているはずです。
そう信じています。
手動ではすべての投稿をチェックできませんので、AIエージェントの力を使いました。
さすがですね。
依頼をかけて、しばらく放置してから確認で、結果が分かります。
これで複数パターンあったことが分かりました。
コードパターンで解釈してくれたようで、アクセス数の統計には影響なさそうです。
パターンを見つけ出す
細かいことが分からなくても、パターンが見つかればなんとかなるものです。
見た目だけで問題を見出せました。

さすがにブロックエディターでは分からなかったのですが。
コードエディターで見て分かるレベルでよかったです。
プログラムに手を入れる必要もなく、表面的に対応できたことも助かりました。
ところで、どうして複数パターンの問題が発生していたのでしょう。
そもそも問題が発生していることに謎が残ります。。
原因不明という点には不安を覚えます。

ご意見やご感想などお聞かせください! コメント機能です。