Wordpress包括(“../../../ wp-blog-header”);失败

时间:2010-01-28 20:08:20

标签: php wordpress

我目前正在开发一个涉及大量.php文件的Wordpress插件。我看到,对于我的AddShift.php文件,我们使用以下代码行成功导入了博客标题:

include("../../../wp-blog-header.php");

但是,当我尝试在我的ajax_cal_split.php文件中执行相同操作时,出现以下错误:

Warning: include(./wp-blog-header.php) [function.include]: failed to open stream: No such file or directory in /opt/lampp/htdocs/sandboxj/blog/wp-content/plugins/Shifty/ajax_cal_split.php on line 11

Warning: include() [function.include]: Failed opening './wp-blog-header.php' for inclusion (include_path='.:/opt/lampp/lib/php') in /opt/lampp/htdocs/sandboxj/blog/wp-content/plugins/Shifty/ajax_cal_split.php on line 11

第11行当然说

include("../../../wp-blog-header.php");

当这些调用位于同一目录中时,是否有任何理由在一个.php文件而不是另一个文件上工作?

4 个答案:

答案 0 :(得分:5)

这是您在插件文件中获取真实路径的解决方案

<?php
$scriptPath = dirname(__FILE__);
 $path = realpath($scriptPath . '/./');
 $filepath = explode("wp-content",$path);
// print_r($filepath);
define('WP_USE_THEMES', false);
require(''.$filepath[0].'/wp-blog-header.php');

答案 1 :(得分:1)

是的 - 我相信wordpress在wp-content目录中对内容运行安全机制,我遇到了与主题相同的问题。我使用的解决方法是包含绝对路径名。

答案 2 :(得分:0)

您应该尝试使用wordpress提供的WP_PLUGIN_URL常量。例如,您可以像这样定义实际的插件URL:

define('MyPLUGIN_URL', WP_PLUGIN_URL.'/plugin_folder/'); 

然后在您的通话中使用它:

include(MyPLUGIN_URL."wp-blog-header.php");

多数民众赞成我如何解决问题,对于迟到的回答感到抱歉,但这可能有助于下一次检查。

答案 3 :(得分:0)

它有效,按照建议操作并使用绝对网址,我使用

包括( “可湿性粉剂内容/主题/ YOUR_THEME / DESIRED_FILE.php”);