WordPressの囲み型ショートコードでpやbrが付くのを防ぐ方法

作成日:

今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を楽しんでいます。

Loading...

コメントをどうぞ

  • メールアドレスが公開されることはありません。
  • コメント欄にURLは入力できません。
  • このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシー利用規約が適用されます。