[英]Accessing wordpress DB object (wpdb) from an external server
提前為菜鳥問題感到抱歉。
我搜尋了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
則(非常困難 )訪問wpdb對象不是很安全。 還有另一種解決方法嗎?
使用require_once( 'http://www.example.com/wordpress/wp-load.php' );
即使您allow_url_include
也無法從外部位置工作。 您的服務器仍然解析php文件並發送解析后的php,最終將其完全空白。
您需要做的是創建一個API。 您可能想要創建一個Wordpress插件,該插件創建一個新的URL,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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.