提前抱歉为noob-question。
我已经搜索了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
(h / t到stormmyfrog)来访问wpdb对象并不是很安全。还有另一种解决方法吗?
答案 0 :(得分: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 SITE
<?php
$data = json_decode(file_get_contents('http://www.example.com/wordpress/api.php'));
echo $data->count;
// Result: number of published posts