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>
ご興味のある方は、一度、お試しください。
※上記の内容は全て自己責任のもとでご参考ください。