在我的PHP应用程序中访问WordPress API

时间:2011-10-26 08:19:30

标签: php wordpress api

我正在从我的PHP代码中访问WordPress API,包括wp-blog-header.php和使用get_posts()。

当我的PHP代码与WP目录处于同一级别时,这工作正常。例如:

/blog/[..wp files..]
/index.php

在index.php,我有:

require('blog/wp-blog-header.php');
$post = get_posts(...);

并且运作良好。

但是,当我尝试对目录中的代码执行相同操作时,例如:

/blog/[..wp files..]
/folder/index.php

并在文件夹/ index.php我有:

require('../blog/wp-blog-header.php');
$post = get_posts(...);

这总是让我的应用程序重定向到WP安装(wp-admin / install.php)并且不起作用。

有什么想法吗? API可以在目录中使用吗?

博客配置正确,单独工作正常。


编辑:堆栈跟踪显示在文件夹中使用时应用程序重定向到wp_not_installed()的时间

6   0.4052  3402748 require_once( '/usr/www/juanjo/NuevaWebJuanjo/blog/wp-load.php' )   ../class_wordpress.php:11
7   0.4054  3408296 require_once( '/usr/www/juanjo/NuevaWebJuanjo/blog/wp-config.php' ) ../wp-load.php:30
8   0.4063  3487064 require_once( '/usr/www/juanjo/NuevaWebJuanjo/blog/wp-settings.php' )   ../wp-config.php:19
9   1.3650  6103276 wp_not_installed( ) ../wp-settings.php:100
10  1.6258  7676148 wp_redirect( )  ../load.php:408
11  1.6261  7684480 header ( )  ../pluggable.php:890

谢谢!

3 个答案:

答案 0 :(得分:0)

对于在wordpress系统外部访问的所有wordpress,您必须包含wp-load.php

include("/absolute/path/to/wp-load.php");
//do whatever you want

答案 1 :(得分:0)

我认为@silent意味着您需要将两者都包括在内才能发挥作用。但是,当我运行WordPress时,我需要两个。

答案 2 :(得分:0)

看看这个http://www.webopius.com/content/139/using-the-wordpress-api-from-pages-outside-of-wordpress

显然添加:

define('WP_USE_THEMES', false);

之前:

require('blog/wp-blog-header.php');

诀窍。