我习惯于通过我的孩子主题和Elementor创建自定义短代码,这从来都不是问题。
然而,这一次出现了一些问题,当我在Elementor编辑器中插入短代码小部件时,我的代码正确显示,但保存后我访问了页面,它是空白的,就像从未处理过短代码一样。
有人知道为什么会这样吗?
这是我创建快捷码的代码:
<?php
add_shortcode(\'test\', function () {
ob_start();
require_once (locate_template(\'views/test.php\'));
return ob_get_clean();
});
在文件视图/测试中。php是一个简单的表单,没有什么疯狂之处。
这是Elementor editor的屏幕,其中显示了短代码:
如果我访问这个页面,它是完全空白的。
SO网友:Buttered_Toast
问题在于require_once
, 您正在传递相对路径,但该路径不存在。
假设test.php
您需要的文件在此路径中
wp-content/themes/your-theme/views/test.php
您可以使用以下
require_once locate_template(\'views/test.php\');
考虑使用
include
而不是
require_one
, 如果此短代码不是站点正常运行所必需的,最好使用include,因为这样您就不会收到致命错误,因为该文件不存在。