我需要添加image
,hr
和button
等短代码。但是,我还需要移除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
似乎已经充满了黑客攻击。有什么建议吗?
Martti Laine
答案 0 :(得分:3)
我猜您需要删除wpautop
短信代码hr
,因为它包含在一个段落中?
如果是这样,只需使用您的短代码;
Some text in my editor. [hr] A bit more text.
查看换行间距? WordPress会自动确保“自身”的短代码不会包含在段落中。
我强烈建议你走下目前的路线 - 如果我上面提到的不是问题, 是什么?让我们来看看它,而不是重新发明轮子!
如需记录,如果您需要应用the codex;
的嵌套短代码如果是封闭的短代码 允许其中的其他短码 输出,处理函数可以调用 do_shortcode()递归:
function caption_shortcode( $atts, $content = null ) { return '<span class="caption">' . do_shortcode($content) . '</span>'; }