繁体   English   中英

正确地将插件文件包含到主插件文件中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM