2014-03-30 98 views
5

我創建使用WordPress沒有任何插件或任何第三方放置在接受PARAMS和直接通過WordPress的 - 製作簡單的Web服務

require_once('../wp-load.php'); 
連接到WP數據庫站點根只是簡單的PHP文件一個簡單的Web服務的最佳實踐

,並通過

global $wpdb, $live_site; 
$data = $wpdb->get_var($wpdb->prepare("SELECT meta_value FROM $wpdb->usermeta WHERE user_id = '".$sessionData['userID']."' AND meta_key='last_login_time'")); 

查詢從數據庫中的所有數據現在每一件事情進行得很順利,但包括WP-load.php文件將加載所有WP站點已安裝的所有插件和大量的PHP文件包含真的不需要。

我需要一種方式, 「Web服務」 的實施YAGNI(You aren't gonna need it)

基本上如何包括全球WPDB $,$ live_site以增強;和所有WP函數沒有加載任何其他不必要的文件?

+4

爲什麼同一句話中是否有「wordpress」和「best practices」? –

+1

爲什麼在[tag:wordpress]問題中編寫「最佳實踐」? – Ocramius

+0

您是否考慮過[BackPress](http://backpress.org/),它爲Web應用程序提供了WordPress核心功能? –

回答

0

以上所有的答案是非常有幫助的,但在我的情況不適合,因爲我需要一種無需加載所有WP插件,主題加載從數據庫中的數據,並沒有

require_once('../wp-load.php'); 

require_once('../wp-config.php'); 
實際設置

require_once('../ wp-setting.php');

只是我在根站點文件夾包含Redbeanphp lib和config.php文件,我的PHP文件看起來像:

require_once('config.php'); 
require_once 'vendor/rb.php'; 
global $live_site; 

R::setup('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASSWORD); 
$categories = R::getAll('select * from wp_term_taxonomy WHERE parent = 4); 

我希望幫助任何一個真的這很簡單:)

1

我建議你看看WordPress REST API這是proposed for Core inclusion in WordPress 3.9。這樣你就不需要破解自己的東西,但會得到一個由WordPress開發人員維護的測試良好的API。 從你讀過wordpress.com的傢伙想要將他們自己的API遷移到核心,他們將確保沒有可怕的性能問題襲擊他們的服務器。

1

This talk在WordPress中有很多關於現代開發的有用信息,但最相關的主題是this plugin,它會生成一個只讀的JSON API。