我将此函数添加到functions.php中,它使我可以将短代码用于div标签。 [div class =“”] [/ div]当我将其中两个放置在一起或wordpress添加一个额外的br标签时。有什么办法可以防止这种情况?这是功能:
function div_html($atts, $content = null) {
extract( shortcode_atts( array(
'class' => '',
), $atts ) );
$class = $class ? " class=\"$class\"" : NULL;
return "<div$class>$content</div>";
}
add_shortcode('div', 'div_html');
答案 0 :(得分:0)
您的简码被放置在通过某些格式过滤器运行的内容中的单独行中(如注释中所确认)。
应用于内容的过滤器之一称为wpautop()
。其目的是将内容包装在段落标签中。它会将两个换行符识别为一个新段落。它还用<br />
标签替换了单个换行符,因此出现了问题。
最简单的解决方案是删除换行符。将短代码彼此紧邻放置,以避免添加不必要的中断标签。
还有更复杂的选项,例如有条件地删除wpautop过滤器并将其第二个参数$br
设置为false来恢复它。