web-dev-qa-db-ja.com

不正な形式のエスケープコードとして不適切に表示されるHTMLエンティティ

私は今まで見たことのない奇妙な問題を抱えています。数日前にWordPressサイトをSitegroundからGoDaddyに移動しましたが、特定の場合にサイトにHTMLエンティティの表示に問題があるようです。たとえば、404ページでは、タイトルはソースコードに次のように印刷されます。

<h1 class="page-title">Oops! That page can&amp;rsquo;t be found.</h1>

ページに「おっと!そのページは&rsquo;tが見つかりません。」と表示されます。

ご覧のとおり、何らかの理由で、HTMLエンティティ&rsquo;の一部であるアンパサンドが最初にエンコードされ、実際のHTMLエンティティが破損します。これは、&amp;amp;amp;のようなアンパサンドを印刷するカスタム分類の用語でも、左向きの矢印の代わりに&larr;のようなものを印刷するWordPress管理インターフェースでも発生するようです。 (←)。

問題が発生している分類用語のテキストを編集してみましたが、問題は続きました。不正な&amp;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が追加されるという問題が発生します。

1
dmatamales

この問題は、WordPressの経験が浅いITチームの誰かが、 WordPressブログ で見つけたコードを追加したことが原因であることがわかりました。 - )それは文字通りしてはいけないことの印のない例から始まります。

ITチームによると、wp-config.phpに追加されたこの行が明らかに問題の原因でした。

define( 'CUSTOM_TAGS', true );

この物語には2つの教訓があります。

  1. 常にWordPressブログを批判的に読み、あなたがしていることが単なる解決策ではなく、本当に最善の解決策であることを確認してください。
  2. 他人がインターネット上で読んだランダムなものを信頼することに慎重になると決して仮定しないでください。これにはWordPressブログが含まれます。
0
dmatamales