0

我需要添加短代码,例如image,hrbutton. 但是,我还需要移除wpautop过滤器 ( remove_filter('the_content','wpautop')) 以使 hr 正常工作。现在,要手动设置 paraghraps,我设置了一个简码p以简单地转换[p]text[/p]<p>text</p>.

但是,在[p /]其他短代码内部不起作用。我猜它修改了内容。这是我的简单功能:

function p_func($atts,$content) {
    return '<p>'.$content.'</p>';
}
add_shortcode('p','p_func');

我对此有点紧张,因为我functions.php似乎已经充满了黑客攻击。有什么建议吗?

马蒂莱恩

4

1 回答 1

3

我猜你需要删除wpautop你的hr短代码,因为它被包裹在一个段落中?

如果是这样,请像这样使用您的简码;

我的编辑器中的一些文本。

[小时]

多一点文字。

看到换行间距了吗?WordPress 将自动确保短代码“本身”不会被包裹在段落中。

我强烈建议沿着你目前的路线走 - 如果我上面提到的不是问题,那什么?让我们看看解决它而不是重新发明轮子!

作为记录,如果您需要应用嵌套短代码,请从codex

如果封闭的简码打算在其输出中允许其他简码,则处理函数可以递归调用 do_shortcode() :

function caption_shortcode( $atts, $content = null ) {
   return '<span class="caption">' . do_shortcode($content) . '</span>';
}
于 2010-12-04T15:06:18.240 回答