1

提前抱歉这个菜鸟问题。

我已经搜索了 Google 和 StackOverflow,并找到了很多在同一服务器上访问 php 页面上的 wpdb 的方法,但似乎没有人知道从完全不同的服务器调用它的答案。

我正在尝试在 Piwik 中创建一个插件来查询我们的多站点 WP DB(托管在与 Piwik 不同的服务器上)以获取帖子的总数。当您使用 wpdb 类(例如,$wpdb->get_results)时,查询很容易......但如果您尝试运行直接 SQL 查询,则不是那么容易,因为您必须从 60 多个表中统计一个计数,因此我希望使用 wpdb 来获取所有有用的功能。

require_once( 'http://www.example.com/wordpress/wp-load.php' );话虽如此,如果您设置allow_url_include=1. 还有其他方法可以解决这个问题吗?

4

1 回答 1

1

require_once( 'http://www.example.com/wordpress/wp-load.php' );即使您在外部位置使用也无法使用allow_url_include. 您的服务器仍会解析 php 文件并发送解析​​后的 php,但最终会完全空白。

您需要做的是创建一个 API。您可能想要创建一个 Wordpress 插件,该插件创建一个 Piwik 可以查询以获取结果的新 url。

Wordpress 服务器上的一个超级简单的 api 可能如下所示:

/api.php

<?php

// TODO add authentication, probably token-based
// TODO move this to a WP plugin

include ('wp-load.php');

// Get count of published posts
$count = array(
    'count' => wp_count_posts()->publish
);

echo json_encode($count);

PIWIK 网站

<?php

$data = json_decode(file_get_contents('http://www.example.com/wordpress/api.php'));

echo $data->count;
// Result: number of published posts
于 2013-06-12T21:58:57.720 回答