wordpress - 短代码输出在新行后添加 <br/>

标签 wordpress shortcode

我正在尝试创建一个短代码来向页面添加 CSS 样式属性。我将以下代码添加到主题的functions.php 中。

function add_style( $atts, $content = null ) {
    return '<style>' . $content . '</style>';
}
add_shortcode( 'style', 'add_style' );

在页面的编辑器中,我将其用作:
[style]
.image-main{
  border:5px solid lightblue;
}
[/style]

在呈现的页面上,它输出到:
<style>
<br />
.image-main{<br />
  border:5px solid lightblue;<br />
}<br />

</style>

如何设置简码以删除 <br />当我有多行内容时?

最佳答案

插入 br 标记是因为 WordPress 处理您的内容的默认顺序 - wpautop(将换行符转换为 p 或 br 标记的函数)在处理短代码之前运行。

解决方案:

更改 wpautop 的执行优先级,使其在处理镜头代码之后而不是之前执行。将此添加到您的 functions.php 文件中:

remove_filter( 'the_content', 'wpautop' );
add_filter( 'the_content', 'wpautop' , 12);

现在,您的短代码块内将不会添加额外的 p 或 br 标签。事实上,换行符根本不会自动转换为 p 和/或 br 标记。因此,如果您希望合法的换行符转换为 p 和 br 标记,则需要从简码函数内部运行 wpautop,例如:
function bio_shortcode($atts, $content = null) {
   $content = wpautop(trim($content));
   return '<div class="bio">' . $content . '</div>';
}
add_shortcode('bio', 'bio_shortcode');

关于wordpress - 短代码输出在新行后添加 <br/>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32570351/

相关文章:

php - WooCommerce 特色产品以及使用简码的描述

jquery - 使用 html2pdf 库创建 HTML 到 PDF 文件

html - 无法在 iPhone 中填写 HTML 表单,文本无法正常显示

javascript - cufon LTR 转 RTL

html - 简码 Ultimate DIV 颜色

php - 获取 WooCommerce 产品总销售额

php - 无法在 Wordpress 主题中实现自定义导航菜单

php - 有条件地删除 Woocommerce 中的特定购物车商品

php - 一页上有 2 个或更多 ACF WordPress

javascript - 如何缩短重复的 javascript php 代码