【WordPress】投稿記事内に置いた script タグの中で、CDATAセクションが増殖するのを止める。

WordPressで、記事中に埋め込んだ JavaScript が時おり動作しなくなるので何故かと思っていたら、こういう訳だったのです。

投稿画面で、なにか普通に記事を書いて HTMLエディットモードに切り替える。で、記事中に script タグで囲んで JavaScript を記述する。
例)
<script>
h2vconvert.init( { 'tategaki' : { auto : true } } );
</script>
一旦ビジュアルエディタに戻って、もう一回 HTMLエディタに切り替えてみると、その部分は…
<script type="text/javascript">// <![CDATA[
h2vconvert.init( { 'tategaki' : { auto : true } } );
// ]]></script>
と、なっています。

これは特に問題ない。たぶん XHTML の文法的に正しい感じに、おせっかいにも自動で直してくれているのだろうな。

でもこれ、ビジュアルエディタと HTMLエディタを行ったり来たりしたり、途中で投稿を保存したりとかしていると、いつの間にか
<script type="text/javascript">// <![CDATA[
// < ![CDATA[
// < ![CDATA[ h2vconvert.init( { 'tategaki' : { auto : true } } );
// ]]></script>
…とか、こんなことになって、肝心のスクリプトそのものがコメントアウトされとるやないかい! 動かんではないかい!…となってしまうのです。

これはバグなの? それとも正しい、意図された動作なの? なんなの?

いずれにせよ、回避したい。

で、とりあえずこの現象を回避するには、
ダッシュボードの 設定 > 投稿設定 の画面上のほう「整形」で、
「不正にネスト化した XHTML を自動的に修正する」
のチェックを外して、変更を保存。
…で大丈夫になるようだ。無事、 // <![CDATA[ が複数くっつくことは無くなりました。

もう、何でもかんでも「自動」が良いってものではないのですな。

カテゴリ: