不久前我需要做同样的事情,如果不将大量“不必要的”文件包含到您的项目中,就很难绕过该警告。
我说“不必要”是因为您确实需要它们,但是仅仅将一些数据提取到您的应用程序就太过分了。
如果可能在您的环境中,我这样做的方式是直接查询数据库,例如,如果您需要访问帖子,然后查询wp_posts
表。
如果您需要为每个用户提取帖子,那么您应该能够直接查询数据库。安全方面,您必须清理所有输出,例如htmlentities
在 php.ini 中使用。
这是当前 PHP 版本的数据库架构(您的版本可能会有所不同)
http://codex.wordpress.org/File:WP3.0-ERD.png
就像是:
SELECT * FROM wp_posts WHERE post_author = 1
应该给你管理员用户写的所有帖子。
您可以包含 wp_config.php 以访问您的数据库凭据,然后以这种方式使用 PDO(或 mysqli)连接到您的数据库:
require('path/to/wp_config.php');
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$sql = "SELECT post_date, post_title, post_content FROM wp_posts WHERE post_author = ?";
$statement = $mysqli->prepare($sql);
$statement->bind_params("i", $user_id);
$statement->bind_result($post_date, $post_title, $post_content);
$user_id = 1;
$statement->execute();
while($statement->fetch() {
echo "{$post_date}\n{$post_title}\n{$post_content}";
}
$statement->close();
$mysqli->close();
如果您之前没有使用过 mysqli,您可以在以下两个链接中了解更多信息:
http://www.php.net/manual/en/mysqli.quickstart.connections.php
http://www.php.net/manual/en/mysqli-stmt.fetch.php
此外,有些帖子可能包含 bb 标签、富文本和 Wordpress 为您处理的一堆其他不同的东西,但如果您直接查询数据库,您将不得不将 HTML 标签(如 h1)列入白名单,甚至编写一个BB 代码解析器。
一个不错的选择是创建一个空白的 Wordpress 模板,然后通过 iframe 将其包含在您的应用程序中。
但是,要实现这一目标,您可能必须使用相同的数据库配置创建一个 wordpress 博客的副本,以便在同一个博客上拥有两个处于活动状态的模板。“空白”模板将从用户视图中隐藏。
另一种选择是编写一个 RSS 阅读器,但我不确定是否可以为每个用户获取 RSS 提要。