問題描述

要獲得一個外掛的路徑,您可以使用 plugin_dir_path(__FILE__) – 但這顯然必須從 plug-in 中呼叫。

如何從 plug-in A 中可靠地獲取外掛 B(pluginb/pluginb.php) 的路徑?

編輯:假設你知道你以後的 plug-in 的 s after(實際上你可以從 get_plugins()獲得它們) 。但我希望它能普遍工作。

最佳解決方案

我最好的猜測是:

if ( ! is_file( $dir = WPMU_PLUGIN_DIR . '/pluginb/pluginb.php' ) ) {
    if ( ! is_file( $dir = WP_PLUGIN_DIR . '/pluginb/pluginb.php' ) )
        $dir = null;
}

return $dir;

然而,這裡的危險仍然是外掛的”basename” 的假設 – 一個寫得很好的外掛仍然可以執行,即使它的目錄和/或主檔案已被重新命名 (無論什麼原因) 。

這可以追溯到我原來的評論 – 根據這是指哪個 third-party 外掛,許多作者定義了自己的方法/常量來儲存外掛路徑 – 檢查它們的存在和使用它們 (如果可用) 。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。