【WordPress】投稿記事内に置いた script タグの中で、CDATAセクションが増殖するのを止める。
WordPressで、記事中に埋め込んだ JavaScript が時おり動作しなくなるので何故かと思っていたら、こういう訳だったのです。
投稿画面で、なにか普通に記事を書いて HTMLエディットモードに切り替える。で、記事中に script タグで囲んで JavaScript を記述する。
例)
<script>
h2vconvert.init( { 'tategaki' : { auto : true } } );
</script>
<script>
h2vconvert.init( { 'tategaki' : { auto : true } } );
</script>
一旦ビジュアルエディタに戻って、もう一回 HTMLエディタに切り替えてみると、その部分は…
<script type="text/javascript">// <![CDATA[
h2vconvert.init( { 'tategaki' : { auto : true } } );
// ]]></script>
h2vconvert.init( { 'tategaki' : { auto : true } } );
// ]]></script>
と、なっています。
これは特に問題ない。たぶん XHTML の文法的に正しい感じに、おせっかいにも自動で直してくれているのだろうな。
でもこれ、ビジュアルエディタと HTMLエディタを行ったり来たりしたり、途中で投稿を保存したりとかしていると、いつの間にか
<script type="text/javascript">// <![CDATA[
// < ![CDATA[
// < ![CDATA[ h2vconvert.init( { 'tategaki' : { auto : true } } );
// ]]></script>
// < ![CDATA[
// < ![CDATA[ h2vconvert.init( { 'tategaki' : { auto : true } } );
// ]]></script>
…とか、こんなことになって、肝心のスクリプトそのものがコメントアウトされとるやないかい! 動かんではないかい!…となってしまうのです。
これはバグなの? それとも正しい、意図された動作なの? なんなの?
いずれにせよ、回避したい。
で、とりあえずこの現象を回避するには、
…で大丈夫になるようだ。無事、 // <![CDATA[ が複数くっつくことは無くなりました。
もう、何でもかんでも「自動」が良いってものではないのですな。
コメント