当您开发WordPress插件或主题时,关于直接加载wp-*文件的“否”是合理的,但如果您开发的外部代码需要wp(这似乎是您的情况),那么您必须要求该文件,没有其他选择。
考虑包括wp-blog-header.php
当您需要处理WordPress URL或完整的WordPress前端时需要,但当您需要WordPress功能时,包括wp-load.php
更好更快,无需$wp->init();
.
此外,设置SHORTINIT
常量设置为true可以加快加载速度,但WordPress的某些功能不可用,用户检查就是其中之一。
但是,只需要几个文件,并调用几个函数,就可以检查用户功能:
<?php
define( \'SHORTINIT\', 1 );
require \'../wp-load.php\'; // adjust according to your paths
require ABSPATH . WPINC . \'/formatting.php\';
require ABSPATH . WPINC . \'/capabilities.php\';
require ABSPATH . WPINC . \'/user.php\';
require ABSPATH . WPINC . \'/meta.php\';
require ABSPATH . WPINC . \'/post.php\';
require ABSPATH . WPINC . \'/pluggable.php\';
wp_plugin_directory_constants();
wp_cookie_constants();
if( current_user_can( \'manage_options\' ) ) { // check capability
$GLOBALS = array(); // free some memory
// require your file here
} else {
header("HTTP/1.1 401 Unauthorized");
exit;
}