你好,
所以我有一个使用 Zend Framework 作为 MVC 的网站 (www.site.com),并在同一台服务器上的 wordpress (www.site.com/blog) 中设置了一个单独的博客,但是 我希望能够在各种页面上使用 Wordpress 功能从 wordpress 中提取帖子。
目前,网络服务器的 DocumentRoot 是 /httpdocs/public
。 public
包含指向 /httpdocs/blog
的符号链接(symbolic link)(我打开了 Options FollowSymlinks)
所有请求都通过 htaccess 规则路由,这些规则将其重定向到 httpdocs/public/index.php(然后加载 Zend 内容)或常规文件/其他不在 Zend 应用程序内的区域。
wordpress 中的示例代码是使用以下内容:
define('WP_USE_THEMES', false);
require(APPLICATION_PATH .'/../blog/wp-blog-header.php');
但是...这只是试图将我从 site.com/page
重定向到 site.com/page/wp-admin/install.php
(这不会'不存在,所以我从 firefox 收到“此页面正在以一种永远不会完成的方式重定向”错误,即使 site.com/blog 已设置并且工作得很好。出于某种原因,它似乎无法识别它是(可能是因为路径问题......)
有谁知道我该如何解决这个问题?
注意:目前我只是查询 wordpress 数据库,但这不能正常工作,因为它没有正确格式化帖子内容。
最佳答案
这是一个已知问题(在撰写本文时已使用 WP 3.2.1 进行测试): http://wordpress.org/support/topic/calling-wp-blog-headerphp-from-inside-a-php-function
解决方案:
避免在任何类方法或函数中包含 wordpress 核心。如果还是不行,检查一下debug_backtrace()
的内容,看你是不是真的在全局范围内。
解释:
Wordpress 在初始化时设置了一些变量(直接赋值,不使用$GLOBALS)。如果不是在全局范围内初始化,这些变量就属于当前函数或方法范围。结果是这些变量不能被 wordpress 的核心函数访问,因为它们依赖于 global
关键字。
关于php - 在 Zend Framework 中加载 Wordpress 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7145033/