<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>
标签,这会弄乱我的版式页面。#1 楼
shea的答案在许多情况下都不理想:上面的代码会删除,在很多情况下,它被认为是“黑客入侵内核”,因为这正在改变WP的默认内核行为-例如,这种情况不会在ThemeForest中通过br />
据我所知,您的简码主要存在问题。解决此问题的正确方法不是更改默认行为(修改内核),而是仅过滤内容。因此,只需添加一个过滤器,然后在变量中传递要过滤的Shotrcode数组,如下所示:不会包含
<br>, <p>
等内容,但是内容的其他部分(例如,用户创建的WP编辑器中的标准文本)仍将具有WP的全部功能。参考文献: >
the_content WP过滤器
正则表达式“翻译器”
加入PHP函数
preg_replace PHP函数
评论
在我的项目中效果很好。太棒了,太棒了,很棒,太棒了……..太好了!
– Arefin2k
2015年11月2日,下午6:03
@Borek这很棒,似乎工作得很好(+1),但是要改善您的答案,您可以解释一下它在做什么?从外观上看,它正在删除近one_third和team_member短代码中的
和
标记,但是我不确定(我的REGEX技能肯定不符合要求)。您能概述一下对我们有什么作用,现在我们可以为其他短代码配置它了吗?
– dKen
16-2-17在11:26
@dKen正是您编写的内容。除了正则表达式外,它非常简单,因为内容由内置的WP过滤器the_content填充。我们只需要通过指定要过滤的内容(块)和方式(rep)的函数来提供要过滤的内容。我添加了参考,因此您可以通过检出每个函数和过滤器来更好地理解这一点。至于添加更多的短代码,您只需要通过简单地向其中添加短代码名称来扩展$ block数组即可,例如join(“ |”,array(“ one_third”,“ team_member”,“ next_one”,“ another_one”,“ one_more”) );
– Borek
16-2-17在19:52
……专业开发人员说,做得很好。正在投票。
–融合
17年8月7日在22:54
仅供参考,这仅在查看页面时有效。但是,在编辑器中,您很可能仍会像往常一样看到不需要的
和
。
– MarsAndBack
18年8月6日在22:21
#2 楼
wpautop()
函数将<p>
和<br>
标签添加到您的内容中,以保留换行符。如果您想自己添加这些标签,则可以删除将此功能应用于帖子内容的过滤器:创建(插入
<p>
标签)并删除其他<br>
标签,您可以改用以下代码:此代码。#3 楼
安装插件“别乱搞我的标记”。它在每个页面上添加一个复选框选项,从而禁止自动插入
<p>
和<br>
标签。还有一个选项在整个网站上进行。
#4 楼
可能是文本编辑器弄得一团糟。这就是我所做的:我使用TinyMCE。在文本编辑器的设置下,我未选中“保存时停止删除“
”和“
”标签,并在HTML编辑器中显示它们”。为我工作。
#5 楼
如果您没有任何其他需要过滤器的内容,则您可能只使用do_shortcode()
(如果您的内容中只有短代码)。我不知道上下文,但是如果您处于循环中:
echo do_shortcode($post->post_content);
#6 楼
Borek的答案不适用于我的用例,即编写原始HTML。为此,我使用了代码片段插件(让您轻松添加任意运行的PHP片段)来创建代码一个
[html][/html]
简码。此简码的妙处在于它与toggle-wpautop插件兼容,可让您禁用在整个帖子上自动插入<br>
和<p>
标签。您可以混合使用或匹配。function html_shorttag_filter($content) {
// Based on: https://wordpress.org/plugins/lct-temporary-wpautop-disable-shortcode/
$new_content = '';
$pieces = preg_split('/(\[html\].*?\[\/html\])/is', $content, -1, PREG_SPLIT_DELIM_CAPTURE);
// don't interfere with plugin that disables wpautop on the entire page
// see: https://plugins.svn.wordpress.org/toggle-wpautop/tags/1.2.2/toggle-wpautop.php
$autop_disabled = get_post_meta(get_the_ID(), '_lp_disable_wpautop', true);
foreach ($pieces as $piece) {
if (preg_match( '/\[html\](.*?)\[\/html\]/is', $piece, $matches)) {
$new_content .= $matches[1];
} else {
$new_content .= $autop_disabled ? $piece : wpautop($piece);
}
}
// remove the wpautop filter, but only do it if the other plugin won't do it for us
if (!$autop_disabled) {
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
}
return $new_content;
}
// idea to use 9 is from: https://plugins.svn.wordpress.org/wpautop-control/trunk/wpautop-control.php
add_filter('the_content', 'html_shorttag_filter', 9);
add_filter('the_excerpt', 'html_shorttag_filter', 9);
#7 楼
此功能仅删除短代码的<p>
和<br>
标签。function bnd_fix_shortcodes_extra_line_break( $content ){
$array = array (
'<p>[' => '[',
']</p>' => ']',
']<br />' => ']'
);
$content = strtr( $content, $array );
return $content;
}
add_filter('the_content', 'bnd_fix_shortcodes_extra_line_break');
评论
它还会影响所有未将[和]用作短代码调用的一部分的情况。
– fuxia♦
19年1月26日在8:02
#8 楼
对于不熟悉代码破解或不想使用插件的用户,可以执行此操作。1)从WP页面复制所有当前代码(文本编辑器)
2)然后粘贴到记事本并继续需要编辑(添加短代码,html代码或CSS代码)
3)将记事本中的粘贴内容复制到WP页面上的同一屏幕上(文本编辑器)
4)点击位于同一WP页面右侧的[UPDATE]按钮以发布页面
5)最后在实时网站上预览它
这里的窍门是不要为该特定页面切换回[可视编辑器],然后为[p]或[br]自动追加不会再发生了。
评论
您是要删除所有地方的标记还是仅删除那些短代码?请在这里查看我的答案:wordpress.stackexchange.com/questions/55782/…