在Wordpress中创建短代码,在包装内容上禁用wpautop()?

时间:2017-10-06 00:36:33

标签: wordpress shortcode

想要将图形放在与h3标题相同的行/行上,如下所示:

<h3 style="display:inline;">Graphic Advantage</h3><img style="max-width: 50px; width: 100%;" src="https://sgdesign.com/images/SGDadvantage.png" alt="SGD Advantage"  />

首先我将h3 display = inline,因此它只占用它的实际宽度而不是整行。我可以浮动h3和图形左,然后做一个clearfix但它似乎过度。目标是简单地将h3和小图形放在同一条线上。

由于Wordpresses自动格式化功能wpautop()自动设置,段落标记&lt; p>

但是,当辅助内容(图形)包含在短代码中时,这种方法有效:

<h3 style="display: inline;">Advantage SGDesign</h3>
[tooltip text="Throughout our site you'll see this icon that will help identify significant differences between SGDesign and other companies"]<img style="max-width: 50px; width: 100%;" src="https://sgdesign.com/images/SGDadvantage.png" alt="SGD Advantage"  />[/tooltip]

问题:阻止某种类型的包装标签中的wpautop()函数的最佳做法是什么?

可能会创建一个像

这样的空短代码
function no_wp_autoformat_shortcode() {
return null;
}
add_shortcode('nowpautop', 'no_wp_autoformat_shortcode');

这将有效,但现在它隐藏了包裹的&lt; img ...

所以问题是如何在用Shortcode包裹时显示图像?

<h3 style="display:inline;">Graphic Advantage</h3>[nowpautop]<img style="max-width: 50px; width: 100%;" src="https://sgdesign.com/images/SGDadvantage.png" alt="SGD Advantage"  />[/nowpautop]

2 个答案:

答案 0 :(得分:0)

有一种方法可以阻止Wordpress编辑器使用show()自动添加<p>元素。这样做的缺点将禁用wordpress中的所有remove_filter( 'the_content', 'wpautop' );元素,这些元素在对文本进行分段时是不好的。 (当人们从word文档中剪切和粘贴文本时,它也会出现问题......)

是的,使用短代码对我来说似乎不错,无需覆盖Wordpress核心功能

答案 1 :(得分:0)

通过创建使用链接文件src作为属性的Shortcode来解决。详细信息: How to create a Wordpress Shortcode that does nothing?

主要问题是Shortcodes REPLACE内容因此无法简单地“包装”元素以创建禁用自动格式wpautop()函数的所需效果。