WordPressの囲み型ショートコードでpやbrが付くのを防ぐ方法
作成日:
2018年10月16日
今bootstrapでカルーセルを実装できるショートコードを作っているのですが、囲み型ショートコードの中に余計な<br />
や<p>
タグが入り込んで来て、非常に邪魔です。
これを防ぐためには、
PHP functions.php
remove_filter( 'the_content', 'wpautop' );
とすれば停止するのですが、これだと本文全体で停止してしまうので、毎回個別に<br />
や<p>
タグを入力する必要があるのでそれはそれで面倒です。
そこで、囲み型ショートコードの処理で、
PHP functions.php
// $contentから改行コードを削除する。
$content = str_replace( PHP_EOL, '', $content );
// 置換する文字列を配列で定義する。
$autop_array = array(
'<p>[' => '[',
']</p>' => ']',
']<br />' => ']',
'<br />[' => '[',
);
// $content内の<p>や<br>を置換する。
$content = strtr( $content, $autop_array );
// $content内のショートコードを処理する。
$content = '<div class="carousel-inner">' . do_shortcode( $content ) . '</div>';
これで
問題解決
しました。
物草 灸太郎
WordPressでホームページを制作しつつ、休日は畑を耕したりDIYを楽しんでいます。
コメントをどうぞ