如何将插件的php文件包含到另一个插件函数文件中

时间:2012-08-22 作者:vadims

我需要使用插件B的一个函数来定制插件A的短代码输出。因此,我通过插入一个条件来检查插件B的函数值来更改插件A的短代码函数,但我需要包含支持此函数的php文件。我尝试了所有require\\u,require和include,但出现以下错误:

使用时require_once(\'../../pluginname/pluginfunctions.php\');

错误警告:require\\u once():open\\u basedir限制生效。文件(../../magicmembers/core/libs/functions/mgm\\u misc\\u functions.php)不在允许的路径内

使用时include(WP_PLUGIN_URL . \'/pluginname/pluginfunctions.php\');

错误警告:include():服务器配置中禁用了URL文件访问

正确的方法是什么?

3 个回复
最合适的回答,由SO网友:pbd 整理而成

第一条错误消息表示,服务器设置的文件包含位置存在限制。你可以试试

require_once ABSPATH . \'/wp-content/plugins/pluginname/pluginfunctions.php\';
但我不确定这是否有效。

对于第二个包含,您试图包含一个URL,该URL因安全原因被服务器禁用。

但是,为什么需要包含插件B的功能?如果插件B存在,这意味着它可能已激活,这反过来意味着您可以直接从插件A使用该功能,而无需专门包含该文件。

SO网友:kaiser

这个right function to use 是:plugin_dir_path();

示例:

include_once plugin_dir_path( __FILE__ ).\'plugin-functions.php\';

SO网友:RestlessWeb

如果你感到懒惰,你也可以这样做

require_once( ABSPATH . PLUGINDIR .\'/pluginname/pluginfunctions.php\' );
如果您希望代码行保持简短,但与pbd的答案没有太大区别,这会有所帮助。

结束