问题描述
我读了大约 2 种方法来初始化 WordPress 文件之外的 WordPress 功能,所以我们可以在 WordPress 博客之外的任何页面或网站上使用这些功能。
这两种方法中的哪一种是正确的?如果两者都是正确的,每种方法的用例是什么?使用一种方法或其他方法之间的尊重是甚么?
方法 1:
<?php
define('WP_USE_THEMES', false);
require('./wp-blog-header.php');
?>
方法 2:
<?php
define('WP_USE_THEMES', false);
require('./wp-load.php');
?>
最佳解决方案
文件之间几乎没有区别。当您查看 WordPress 页面时,第一个文件是 index.php
。而且它本质上就是你的 「方法 1:」
define('WP_USE_THEMES', true);
/** Loads the WordPress Environment and Template */
require ('./wp-blog-header.php');
博客头文件 (将 WordPress 的其余部分排队) 直接加载 wp-load.php
并启动 WordPress 本身。以下是 wp-blog-header.php
的大部分:
if ( !isset($wp_did_header) ) {
$wp_did_header = true;
require_once( dirname(__FILE__) . '/wp-load.php' );
wp();
require_once( ABSPATH . WPINC . '/template-loader.php' );
}
所以你的两个方法之间的区别是… 什么是负载。
方法 1 正是 WordPress 加载自身 (除了关闭主题之外) 。所以如果你需要所有的 WordPress,并想要启动所有的默认钩子/动作,去那条路线。
方法 2 只是进一步的下降。它加载所有 WordPress,但不调用 wp()
或调用模板加载器 (由主题使用) 。方法 2 将会有一点 lighter-weight,但应该给你相同的功能。
次佳解决方案
方法 2,wp-load.php 是访问 WP 的所有功能,这就是所有。你可以删除的第一行,不一定。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。