Wordpressでエントリーを入力する際には、WYSWYGモードとHTMLモードがあります。
前者はともかく、後者はその名にもかかわらず、書いた通りそのままHTMLを出してくれるわけではありません。
タグに囲まれていない部分について、改行にbrがつけられ、さらにpタグで括られて段落化されます。
通常は問題にならないところですが、「HTMLにコメントを残したい」という場合に困りました。コメント部分が、実質からっぽの段落、場合によっては改行だけが入った段落という風に表示されてしまいます。
どうしてもコメントを残さなければならない…ということで、苦肉の策で思いついたのがこれです。
$(".content p").each(function(){
if($(this).html().indexOf("<!--")!=-1) {
$(this).remove();
}
});
非常に単純な話で、表示する際の処理として、エントリー中のpタグの中にコメント開始タグがあったら、Javascriptで、そのpタグごと消してしまうという。
じゃあ、「コメントを入れるんじゃなくて、ブロックごとコメントアウトしたい」という時はどうするか…。
普通にブロックごとコメントアウトしても思ったようにはなりません。
「コメント中にHTMLタグを書けない」という仕様だそうです。
その場合は、消したいブロックにdisplay:noneと設定したクラスをつけてやる…くらいしか思いつきませんでした。
.hidden {
display: none;
}
とした上で、
ひみつのブロック
ここはひみつだから、見えないようにしたいな。
ちなみに、改行を変換しないようにするプラグインもありますが、WYSWYGエディタの改行までスポイルされてしまうので、自分以外の方が使うものについては、なかなか使うのは難しそうです。
できない以上、Wordpressの思想的に「イレギュラーなことすんな」ということなんだと思いますが、皆さんどうしてるんでしょう。

ペンギンパレットは、横浜を拠点に、東京や名古屋のクライアント様を中心に活動しているウェブ制作ユニットです。
PCサイト、モバイルサイトの企画・デザインやサイト構築、a-blog cmsを初めとしたCMS/ブログツールのカスタマイズによるサイト構築、iOS向けアプリケーションの開発などを行っております。
神奈川県横浜市西区平沼(横浜駅より徒歩10分)
角谷 和昭