首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wordpress include(“../wp-blog-header”);失败

Wordpress include(“../wp-blog-header”);失败
EN

Stack Overflow用户
提问于 2010-01-29 04:08:20
回答 4查看 9.9K关注 0票数 3

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

代码语言:javascript
复制
include("../../../wp-blog-header.php");

然而,当我尝试在我的ajax_cal_split.php文件中做同样的事情时,我得到了以下错误:

代码语言:javascript
复制
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行当然是这样说的

代码语言:javascript
复制
include("../../../wp-blog-header.php");

当一个.php文件驻留在同一目录中时,此调用有什么理由只处理一个文件而不处理另一个文件吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-01-29 04:13:00

是的-我相信wordpress在wp-content目录中的内容上有一个安全机制,我在主题上也遇到了同样的问题。我使用的变通方法是包含绝对路径名。

票数 1
EN

Stack Overflow用户

发布于 2014-02-28 20:51:28

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

代码语言:javascript
复制
<?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');
票数 7
EN

Stack Overflow用户

发布于 2011-03-26 03:57:19

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

代码语言:javascript
复制
define('MyPLUGIN_URL', WP_PLUGIN_URL.'/plugin_folder/'); 

然后在您的呼叫中使用它,如下所示:

代码语言:javascript
复制
include(MyPLUGIN_URL."wp-blog-header.php");

这就是我如何解决这个问题的,很抱歉回答得太晚了,但这可能会对下一个签到的人有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2157604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档