WordPress在短代码

时间:2017-06-05 09:36:08

标签: wordpress shortcode wrapping

我正在尝试创建一个应该与常规文本内联的封闭短代码。所以我想这样使用它:

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.&nbsp;</p>

禁用此行为的最佳方法是什么?多人建议在执行短代码后将wp_autop过滤器移动到,但我相信这只适用于短代码中的内容,而不适用于短代码本身的包装。

此外,shortcode_unautop function应该阻止WordPress包装短代码,但我不确定它是否正常工作,至少我似乎无法让它工作。

我的短代码现在看起来像这样:

function caption_shortcode( $atts, $content = null ) { return '<span class="caption">' . $content . '</span>'; } add_shortcode( 'caption', 'caption_shortcode' );

1 个答案:

答案 0 :(得分:0)

您可以使用shortcode_unautop()功能。有关详情,请查看here

试试这样:

function caption_shortcode( $atts, $content = null ) {
    return '<span class="caption">' . shortcode_unautop($content) . '</span>';
}
add_shortcode( 'caption', 'caption_shortcode' );