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