WordPressの自作ショートコードを設定した時に、ショートコードの次に改行を入れて文章を入力するとpタグによって囲まれることがある。
そのような時の解決方法。以下のコードをfunctions.phpに挿入する。
remove_filter( 'the_content', 'wpautop' ); add_filter( 'the_content', 'wpautop', 99 ); add_filter( 'the_content', 'shortcode_unautop', 100 );
他にもいろいろごちゃごちゃコードを書く方法があるけど、これが一番シンプル。
ショートコードの時だけpタグの自動挿入をしないように設定している。
参考:remove empty <p> tags from wordpress shortcodes via a php functon
さらに空のpタグを除去する方法はこちらのコードで除去が可能。
function tgm_io_shortcode_empty_paragraph_fix( $content ) { $array = array( '<p>[' => '[', ']</p>' => ']', ']<br />' => ']' ); return strtr( $content, $array ); } add_filter( 'the_content', 'tgm_io_shortcode_empty_paragraph_fix' );
参考:How To Remove Empty Paragraph Tags From Shortcodes In WordPress