はい、可能です。最小限の WordPress コア (プラグインとテーマのない DB) が必要なプラグインの 1 つでは、次のようにします。
<?php
define('SHORTINIT', true); // load minimal WordPress
require_once PATH_TO_WORDPRESS . '/wp-load.php'; // WordPress loader
// use $wpdb here, no plugins or themes were loaded
私が作ったPATH_TO_WORDPRESS
定数。それを正しいパスに向けるだけです。たとえばプラグインでは、次のようになります。
require_once dirname(__FILE__) . '/../../../wp-load.php'; // backwards 'plugin-dir/plugins/wp-content'
に設定SHORTINIT
するとtrue
、パフォーマンスが少し向上します。
無効にWP_DEBUG
した場合、WordPress のブートストラップにかかる時間は次のとおりです。
- SHORTINIT なし: ~0.045 秒
- SHORTINIT の場合: ~0.0015 秒
これがパフォーマンスを必要とする独自のサイト用である場合は、OpCache (たとえば、最近のバージョンの APC または PHP OpCache) を有効にすることで、おそらくこれを少し増やすことができます。
SHORTINIT
しかし、定義して要求する上記の 2 行のコードwp-load.php
は、あなたが探しているものだと思います。
明確にするために、このファイルはプラグインの一部ですが、WordPress 自体とは独立して (Ajax 経由で直接) 呼び出されます。プラグインまたは WP 自体の他の部分に含まれたり、使用されたりすることはありません。
編集: OPは実際にはWordPressではなくWP-APIに関係しているため、実際の質問に対処するためにこれを追加しています。他の誰かを助けることができる場合に備えて、元の回答内容を残します。
私はWP APIでさらにテストを行いました.@Davidが彼の答えで言ったように、問題はおそらく別のものです.
残りのAPI、いくつかのかなり「大きな」プラグインに加えて、12個のプラグインをロードしました。ローカルインストールには約25個のテーマがインストールされています(もちろん1つはアクティブです)。WordPress のindex.php
ファイルを編集microtime(true)
して、すべての開始時刻を記録し、REST コントローラーの 1 つを編集して、開始から API エンドポイントに到達するまでの時間を計算しました。
私のシステムでの結果は一貫して約0.0462
-0.0513
秒です (PHP OpCache はなく、他のシステム負荷もありません)。そのため、WordPress のすべてをブートストラップしても、パフォーマンスにはほとんど影響がないようです。
リクエストに 0.5 秒かかっている場合、ボトルネックは別の場所にあり、プラグインとテーマを除外しても影響は最小限に抑えられます。少なくともこれは私が見つけたものです。