我为基本上通过短代码插入html的列编写了wordpress短代码。问题是wpautop添加了使代码无效的散乱p元素。
要测试,请将其放入您的函数中。php:
function static_col_container($atts, $content) {
extract(shortcode_atts(array(
\'foo\' => \'bar\'
), $atts));
$content = do_shortcode($content);
$container = \'<div class="static-column-container">\' . $content . \'</div>\';
return $container;
}
add_shortcode(\'static-cont\', \'static_col_container\');
function static_col($atts, $content) {
extract(shortcode_atts(array(
\'space\' => \'2\',
\'class\' => \'\'
), $atts));
$content = do_shortcode($content);
$column_container = \'<div class="static-column static-column-\' . $space . \' \' . $class . \'">\' . $content . \'</div>\';
return $column_container;
}
add_shortcode(\'static-col\', \'static_col\');
用法是:
[static-cont]
[static-col]
put some content here...
[/static-col]
[static-col]
put some content here...
[/static-col]
[/static-cont]
我知道Wordpress使用wpautop插入p标记,可通过以下方式禁用:
remove_filter(\'the_content\', \'wpautop\');
问题是,现在您必须自己输入每一个p元素,这很痛苦,并且使可视化编辑器无用。有没有人找到更好的解决方案?
SO网友:Djave
我也有同样的问题,不是从验证的角度来看,而是从样式的角度来看,一个错误的开头p标记破坏了我的CSS。
$retour =\'<div class="testimonial-meta">\'
$retour .=\'<h5>\'.$testimonial_name.\',</h5><span>\'.$testimonial_details.\'</span>\';
$retour .=\'</div>\';
return $retour;
正在返回:
<div class="testimonial-meta">
<h5>John Doe,</h5>
<p><span>Company CEO</span></div>
</div>
我通过添加CSS修复了样式:
.testimonial-meta p{
display:inline;
}
希望这对某人有用。