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

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



今bootstrapでカルーセルを実装できるショートコードを作っているのですが、囲み型ショートコードの中に余計な<br /><p>タグが入り込んで来て、非常に邪魔です。

これを防ぐためには、

remove_filter( 'the_content', 'wpautop' );

とすれば停止するのですが、これだと本文全体で停止してしまうので、毎回個別に<br /><p>タグを入力する必要があるのでそれはそれで面倒です。

そこで、囲み型ショートコードの処理で、

// $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の囲み型ショートコードでpやbrが付くのを防ぐ方法

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


開発

今bootstrapでカルーセルを実装できるショートコードを作っているのですが、囲み型ショートコードの中に余計な<br />や<p>タグが入り込んで来て、非常に邪魔です。 これを防ぐためには、 r…


関連する記事



こちらはいかが?


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*(必須)

*(必須・表示されません)