我在index.html
模板中有一些短代码,例如:<!-- wp:shortcode -->[header]<!-- /wp:shortcode -->
短代码在ob_start()
和return ob_get_clean()
之间添加了一堆html和php。
这工作得很好,直到最近(我假设wordpress更新),当它开始插入<br>
和空的<p></p>
标签。
我该如何防止这种情况发生?
我试过在我的functions.php
的顶部添加remove_filter( 'the_content', 'wpautop' );
,正如一些答案所建议的那样,但这没有任何作用。
1条答案
按热度按时间6qftjkof1#
不幸的是,熟悉的“the_conent”过滤器钩子不会做任何事情。如果查看wp-includes/shortcodes.php文件,您将看到如何呈现短代码输出。特别是,输出是通过wpautop()进行的,我想不出什么好办法来阻止这种情况发生。[注意:我正在使用WordPress v6.2.2,所以这个观察最终可能会过时。
如何解决这个问题?我已经和它搏斗了一段时间,在这一点上,我能想到2种方法,应该工作。
1.把短代码块放在它自己的模板部分,告诉你的客户永远不要编辑它。(可能会出什么问题?)
1.创建一个自定义的短代码块,通过编写自己的save.js文件来控制当有人在块编辑器中点击“保存”时会发生什么。