问题描述
|
我需要为wp插件开发执行require_once。在我看来,我需要使用绝对路径。
我当前的解决方案是
$delimiter = strpos(dirname(__FILE__),\"/\")!==false?\"/\":\"\\\\\"; //win or unix?
$path = explode($delimiter,dirname(__FILE__));
require_once join(array_slice($path,count($path)-3),$delimiter) . \"/wp-admin/includes/plugin.PHP\";
我想知道是否有更好的方法来处理这种通用方法。
如果wp插件目录结构更改了怎么办。因此,ѭ1部分将不再有效...。
解决方法
尝试:
require_once realpath(__DIR__.\'/../../..\').\'/wp-admin/includes/plugin.php\';
如果您使用的是dirname(__FILE__)替换
__DIR__
或者您可以尝试:
require_once ABSPATH . WPINC . \'/plugin.php\';
, WordPress在启动时会建立包含目录的路径。
require_once ABSPATH . WPINC . \'/your-file.php\';
, 可以利用WP_CONTENT_DIR并制作一个不错的常量
define(WP_INCLUDE_DIR,preg_replace(\'/wp-content$/\',\'wp-includes\',WP_CONTENT_DIR));
或功能
function wp_include_dir(){
$wp_include_dir = preg_replace(\'/wp-content$/\',WP_CONTENT_DIR));
return $wp_include_dir;
}
, 您是否尝试过执行bloginfo(\'wpurl \')/ wp-content / plugins?
, 我曾经将它定义为一个常量,就像其他常量一样。
if(defined(\'WP_CONTENT_DIR\') && !defined(\'WP_INCLUDE_DIR\')){
define(\'WP_INCLUDE_DIR\',str_replace(\'wp-content\',WP_CONTENT_DIR));
}
如果需要,仍然可以用with10ѭ检查并进一步移动。