私は今まで見たことのない奇妙な問題を抱えています。数日前にWordPressサイトをSitegroundからGoDaddyに移動しましたが、特定の場合にサイトにHTMLエンティティの表示に問題があるようです。たとえば、404ページでは、タイトルはソースコードに次のように印刷されます。
<h1 class="page-title">Oops! That page can&rsquo;t be found.</h1>
ページに「おっと!そのページは’
tが見つかりません。」と表示されます。
ご覧のとおり、何らかの理由で、HTMLエンティティ’
の一部であるアンパサンドが最初にエンコードされ、実際のHTMLエンティティが破損します。これは、&amp;amp;
のようなアンパサンドを印刷するカスタム分類の用語でも、左向きの矢印の代わりに←
のようなものを印刷するWordPress管理インターフェースでも発生するようです。 (←)。
問題が発生している分類用語のテキストを編集してみましたが、問題は続きました。不正な&amp;amp;
を残したまま更新を再度実行すると、チェーンの最後にさらに3つのamp;amp;amp;
sが追加されました。
私はPHPログを見て、この小さな宝石を見つけました。
PHP Warning: in_array() expects parameter 2 to be array, null given in ...wp-includes/kses.php on line 1417
しかし、それは実際にはあまり役に立ちませんし、特定のエラーでもありません。
見知らぬ人でさえ、問題はどこでも起きていません。新しい投稿を作成し、コンテンツにHTMLエンティティを配置すると、期待どおりに適切な文字が表示されました。
誰かこのようなものを見たことがありますか?私の検索のほとんどは、PHPエラー表示がオンになっているサイトで起きている例を示しています。私が遭遇したことは、エンコーディングの問題である可能性を示唆しているようですが、私は本当に知りません。テーマやプラグインの問題ではないと思います。この問題は、まったく同じコードとデータベースを持つSitegroundサーバーのサイトではまったく発生していないからです。
この問題を解決するための提案や、少なくともそれをトラブルシューティングすることを歓迎します。ありがとう!
編集:エンティティコードはフロントエンドのすべてのユーザーに表示され、管理者として用語を編集すると、分類用語に余分なamp;
sが追加されるという問題が発生します。
この問題は、WordPressの経験が浅いITチームの誰かが、 WordPressブログ で見つけたコードを追加したことが原因であることがわかりました。 - )それは文字通りしてはいけないことの印のない例から始まります。
ITチームによると、wp-config.phpに追加されたこの行が明らかに問題の原因でした。
define( 'CUSTOM_TAGS', true );
この物語には2つの教訓があります。