質問: フィルタの前にショートコードを実行する 私のユーザーはスニペットコードをコメントに入れています。私はこのためのショートコードを作成しました:function post_codigo($atts,$content=""){ return '<code>'.$content.'</code>'; } add_shortcode('codigo','post_codigo'); 問題は、htmlがコードタグにラップされる前にフィルタされることです。私はフィルタの前に実行されるショートコードを得ることができれば私は使用できると思いますfunction pre_esc_html($content) { return preg_replace_callback( '#(<code.*?>)(.*?)(</code>)#imsu', create_function( '$i', 'return $i[1].esc_html($i[2]).$i[3];' ), $content ); } add_filter( 'the_content', 'pre_esc_html', 9 ); 私はここで見つけました。あなたが思うこと?更新:ok私のショートコードを次のように変更しました。 function post_codigo($atts,$content=""){ return '<code>'.esc_html($content).'</code>'; } add_shortcode('codigo','post_codigo'); それでもまだ追加コード全体を複数のタグに分割します。
回答: あなたのテーマはあなたの訪問者のコメントを表示するために comment_text() を使っていますか?もしそうなら変更してみてください:<?php comment_text(); ?> に:<?php echo do_shortcode(apply_filters('comment_text', get_comment_text())); ?> これはコメントテキストに "comment_text"フィルタを適用します - 前に それはショートコードを適用します。これはコメントが表示されているところならどこでもあなたのテーマテンプレートで行われるべきです。