制作简单Web服务的最佳实践


Wordpress - Best Practices for Making Simple Web Services

我正在使用WordPress创建一个简单的web服务,没有任何插件或任何第三方,只是简单的php文件放置在站点根接收参数并通过

直接连接到WP数据库
require_once('../wp-load.php');
并通过 查询数据库中的所有数据
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(你不需要它)

基本上如何包括全局$wpdb, $live_site;和所有wp功能不加载任何其他不必要的文件?

我建议你检查一下WordPress REST API,它被提议包含在WordPress 3.9的核心中。这样你就不需要修改自己的东西,而是得到一个由WordPress开发者维护的经过良好测试的API。从你读到的wordpress.com上的家伙想要迁移他们自己的API到核心,他们将确保没有可怕的性能问题打击他们的服务器。

这个演讲有很多关于WordPress现代开发的有用信息,但最相关的主题是这个生成只读JSON API的插件。

以上答案非常有帮助,但在我的情况下不适合,因为我需要一种方法从数据库加载数据,而不加载所有wp插件,主题和设置实际上没有

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

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

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

我有一个文件夹在根站点包含Redbeanphp库和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); 

我希望这对任何人都有帮助。这很简单。