[英]Including plugin files into main plugin file properly
我已经有一段时间没有这个问题了,但是继续努力解决这个想法我终于得到了解决。
我正在尝试将文件包含到我的主插件文档(具有插件标题和版本的文件)中,如下所示:
define('SBT_PLUGIN_URL', plugin_dir_url(__FILE__));
include(SBT_PLUGIN_URL . 'competition_table.php');
在competition_table.php里面是一个add_shortcode(); 需要运行的函数,以便使用wordpress注册短代码:
function add_table() {
//Run code here
}
add_shortcode('competition_table', 'add_table');
当我在网站上运行代码时链接正确解析,包括正确的文件,但是我得到了这个致命错误:
Call to undefined function add_shortcode()
但是,如果我将match_table.php中完全相同的代码添加到我的主插件文档中,那么代码运行完美。
所以基本上,我的问题是,为什么Wordpress不能识别它自己的功能,如何包含文件以使代码正常运行?
提前致谢
您必须在启用WP_DEBUG
进行开发。 它转储错误: wrapper is disabled in the server configuration
。 这让我想到了这一点: “相信我, 你不想包含URL。 ”
然后我意识到你用plugin_dir_url()
来定义那个常量,当你需要的是一个路径时 。 以下魔术常数可以完成这项工作:
include_once __DIR__ . '/competition_table.php';
感谢@b__的反馈,我设法解决了这个问题。
出于某种原因,Magic Constants并不总是使用wordpress,但是,你可以使用它相当于获得相同的效果:
include_once dirname(__FILE__) . '/competition_table.php';
当包含用于wordpress插件的文件时,您应始终通过PATH而不是URL包含。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.