我正在尝试创建一个应该与常规文本内联的封闭短代码。所以我想这样使用它:
Vestibulum ac diam sit amet quam vehicula [caption]elementum sed sit amet dui[/caption]. Proin eget tortor risus. Vivamus suscipit tortor eget felis porttitor volutpat.
执行此操作并保存帖子时,WordPress会自动将段落标记包围短代码。像这样:
<p>Vestibulum ac diam sit amet quam vehicula</p><p>[caption]elementum sed sit amet dui[/caption]</p><p>. Proin eget tortor risus. Vivamus suscipit tortor eget felis porttitor volutpat. </p>
禁用此行为的最佳方法是什么?多人建议在执行短代码后将wp_autop过滤器移动到,但我相信这只适用于短代码中的内容,而不适用于短代码本身的包装。
此外,shortcode_unautop function应该阻止WordPress包装短代码,但我不确定它是否正常工作,至少我似乎无法让它工作。
我的短代码现在看起来像这样:
function caption_shortcode( $atts, $content = null ) {
return '<span class="caption">' . $content . '</span>';
}
add_shortcode( 'caption', 'caption_shortcode' );
答案 0 :(得分:0)
您可以使用shortcode_unautop()
功能。有关详情,请查看here。
试试这样:
function caption_shortcode( $atts, $content = null ) {
return '<span class="caption">' . shortcode_unautop($content) . '</span>';
}
add_shortcode( 'caption', 'caption_shortcode' );