我是Wordpress的新手,正在实施短代码。我的短代码非常简单,预期输出符合HTML5标准:
add_shortcode( 'my_code', function( $attributes ){
return '<a href="#"><div></div></a>';
});
当这个被发出时,我得到以下HTML:
<a href="#">
<div></div>
<p></a>
正如您所看到的,似乎正在进行自动格式化。我已按照建议here,here安装了this plugin,但都无济于事。我正在寻找使这种格式化发生的神奇秘密。任何帮助将不胜感激!
答案 0 :(得分:1)
我无法重新创建问题,在运行示例后,我得到正确的输出:
<a href="#"><div></div></a>
(原始HTML源代码,不是控制台显示的修改后的源代码,控制台中的HTML面板显示浏览器显示内容的实时视图)
问题是当短代码输出包含在段落中时,输出类似于:
<p>Some text <a href="#"><div></div></a></p>
允许这个损坏的HTML(在<div>
内的HTML5 <a>
中受到指责,但<div>
内的<p>
为not)在WordPress过滤器{ {3}}。该过滤条件包含带<p>
标记的文字,用<p>
标记替换双重换行符,用<br />
标记替换单换行符。如果短代码在文本之后,则其输出将成为段落的一部分。为了避免这种情况,只需在文本和短代码之间添加新行。
Some text [my_code] Some text
答案 1 :(得分:0)
正如我所说,我是Wordpress的新手,我正在学习绳索。事实证明问题是由于插件。我停用了所有插件,问题就消失了。所以,经验教训:如果你有一个非常奇怪的问题,首先禁用插件,看看是否是源。感谢@Danijel帮助我解决这个问题!
编辑:FWIW,导致此问题的插件就是这个(v1.0.18):https://wordpress.org/plugins/smpl-shortcodes/