• 解決済 heppoko

    (@heppoko)


    投稿記事において、プラグインを使わずに、HTMLのコメントタグだけ自動整形を無効にする手段なんてあるのでしょうか?

    投稿ページに対して自動整形を無効にする手段があるのは分かっているのですが、HTMLタグをふんだんに使う記事とそうでない記事があるため、タグをふんだんに使う方では出来ればコメントタグを挿入したいと思ったのです。

    コメントタグを削除してしまえばそれですむことなのですが、そうしないで済む手段があれば助かるなと思って調べてみたものの全く見つからず。

    ご存じのことがあればぜひとも教えていただければ幸いです。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • こんにちは、

    デフォルトの状態だと、投稿本文に記述した <!--my comment--> がフィルタされて、非表示になるものを、ソースに表示できるようにしたいという事でいいですか?

    それでいいとすると、

    add_filter('the_content', 'comment_custom_before', 5 );
    
    function comment_custom_before( $content ) {
    
    	return str_replace( array( '<!--', '-->' ), array( '%%', '%' ), $content );
    }
    
    add_filter( 'the_content', 'comment_custom_after', 99 );
    
    function comment_custom_after( $content ) {
    
    	return str_replace( array( '%%', '%' ), array( '<!--', '-->' ), $content );
    }

    ワードプレスのフィルタが動作する前に、「これコメントじゃないですから、、」と文字列置換をして、フィルタの動作が終わったころに、「やっぱりコメントでしたーー」という
    ごまかし処理をするといいと思います。

    コメントがpでラップされるのは、なんか処理してください。

    トピック投稿者 heppoko

    (@heppoko)

    ご回答ありがとうございます。

    公開した際に、
    <p><!– コメント –></p>
    こんな風にコメントタグがPタグで囲われてしまいます。

    こうなってしまうのを防げないかということをお伺いしたかったのです。
    自動整形を無効にすればこうはならないのですが、こう書くべきでした、すみません。

    ですので、回答の最後に書かれてあった、
    「コメントがpでラップされるのは、なんか処理してください。」
    まさにこれをできないのだろうかということを知りたかったのです。

    手抜きですみませんが

    以下のようにすれば、ラップされないんじゃないかと思います。

    <div>等のブロック要素は、pでラップされないので、WordPressをだましちゃう
    という事をやっています。

    <div>%%
    %</div>

    が投稿に存在する可能性がある場合は、別の文字に変更してください

    add_filter('the_content', 'comment_custom_before', 5 );
    
    function comment_custom_before( $content ) {
    
    	return str_replace( array( '<!--', '-->' ), array( '<div>%%', '%</div>' ), $content );
    }
    
    add_filter( 'the_content', 'comment_custom_after', 99 );
    
    function comment_custom_after( $content ) {
    
    	return str_replace( array( '<div>%%', '%</div>' ), array( '<!--', '-->' ), $content );
    }
    トピック投稿者 heppoko

    (@heppoko)

    うまくいきましたです!ありがとうございます。

    SEO的にも問題はなさそうなのですが、
    WordPressをどのようにだましているのだろうという疑問。

    「<!–」を「<div>」だと思え、みたいなことなのでしょうか。
    でもソースを見たら、普通に「<!–コメント–!>」と出ているだけ…

    一体何が起こっているのだろう…

    それはさておき、重ね重ねありがとうございました!

    トピック投稿者 heppoko

    (@heppoko)

    解決済みにするのを忘れておりました…

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「HTMLのコメントタグだけ自動整形を無効にする手段」には新たに返信することはできません。