问题描述
在 WordPress 文本编辑器中添加返回时,是否有办法阻止 WordPress 自动插入<br>
标记。
我希望它的行为更像一个代码编辑器,我可以在这里编写代码,我喜欢什么,使其易于阅读。
我在编辑器中使用的代码是:
[one_third][team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"][custom_button url="#"]For more information[/custom_button][/team_member][/one_third][one_third][team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"][custom_button url="#"]For more information[/custom_button][/team_member][/one_third][one_third][team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"][custom_button url="#"]For more information[/custom_button][/team_member][/one_third]
我想像这样构造它,这样更容易阅读和编辑:
[one_third]
[team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"]
[custom_button url="#"]For more information[/custom_button]
[/team_member]
[/one_third]
[one_third]
[team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"]
[custom_button url="#"]For more information[/custom_button]
[/team_member]
[/one_third]
[one_third]
[team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"]
[custom_button url="#"]For more information[/custom_button]
[/team_member]
[/one_third]
但是,如果这样做会有隐形的<br>
标签添加到帖子内容会弄乱我的页面的布局。
最佳解决方案
在许多情况下,shea 的答案并不理想:
-
你不想剥离
<br>, <p>
等等的所有东西。你希望它作为 WP 视觉作曲家的默认行为,上述代码将被删除 -
在许多情况下,它被认为是 “黑客核心”,因为这正在改变 WP 的默认核心行为 – 例如,这样的事情不会传递给 ThemeForest
我可以看到你主要有与你的问题短码。解决这个问题的正确方法是不要更改默认行为 (黑客核心),而只是过滤内容。所以只需要添加一个过滤器,并且在一个变量中传递你想要过滤的 shotrcodes 数组,就像这样:
function the_content_filter($content) {
$block = join("|",array("one_third", "team_member"));
$rep = preg_replace("/(<p>)?[($block)(s[^]]+)?](</p>|<br />)?/","[$2$3]",$content);
$rep = preg_replace("/(<p>)?[/($block)](</p>|<br />)?/","[/$2]",$rep);
return $rep;
}
add_filter("the_content", "the_content_filter");
内部的内容将被过滤,因此您的短信号将不含<br>, <p>
等,但其他内容部分 (例如用户创建的 WP 编辑器中的标准文本) 仍然具有 WP 的完整功能。
参考文献:
次佳解决方案
wpautop()
功能为您的内容添加了<p>
和<br>
标签,以保留换行符。如果您想自己添加这些标签,那么您可以将应用此功能的过滤器删除到帖子内容:
remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );
如果您想保留自动 paragaraph 创建 (插入<p>
标签),并删除其他<br>
标签,您可以使用此代码:
remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );
function wpse_wpautop_nobr( $content ) {
return wpautop( $content, false );
}
add_filter( 'the_content', 'wpse_wpautop_nobr' );
add_filter( 'the_excerpt', 'wpse_wpautop_nobr' );
如果您不确定该代码放在哪里,请参阅 this link 。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。