問題描述
我讀了大約 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。