WordPressのショートコードはfunctions.php等で自作のショートコードを追加して、とても便利なのですが、ショートコードが pタグ で囲まれてしまいます。
例えば、下記のようなショートコードがあった場合
function my_hogehoge($attr) { return '<div class="hogehoge">hogehoge</div>'; } add_shortcode('hogehoge', 'my_hogehoge');
[hogehoge]
実際、コンテンツが出力される際は
<p><div class="hogehoge">hogehoge</div></p>
となってしまいます。
pタグとdivの margin等 で、この pタグ が邪魔な場合があります。
pタグを補完しないようにする解決方法もあるのですが、文章や画像等にはpタグで囲まれてほしいので、the_contentのフィルターフックで下記のような感じで pタグ を削除してあげれば、いい感じに仕上がります。
/** * shortcodeがpタグに囲まれるfix * */ function shortcode_empty_paragraph_fix($content) { $array = array ( '<p>[' => '[', ']</p>' => ']', ']<br />' => ']' ); $content = strtr($content, $array); return $content; } add_filter('the_content', 'shortcode_empty_paragraph_fix');
<div class="hogehoge">hogehoge</div>
ご興味のある方は、一度、お試しください。
※上記の内容は全て自己責任のもとでご参考ください。