問題描述

要獲得一個插件的路徑,您可以使用 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。