如何获取wp包含目录?

发布于 2024-11-10 11:46:29 字数 450 浏览 0 评论 0原文

我需要为我的 wp 插件开发做 require_once 。在我看来,我需要使用绝对路径。

我当前的解决方案是

$delimiter = strpos(dirname(__FILE__), "/")!==false?"/":"\\"; //win or unix?
$path = explode($delimiter,  dirname(__FILE__));

require_once join(array_slice($path,0,count($path)-3),$delimiter) . "/wp-admin/includes/plugin.php"; 

我想知道是否有更好的方法来处理这个问题,一种通用方法。

如果wp插件目录结构发生变化怎么办。所以这部分 count($path)-3 将不再有效......

I need to do require_once for my wp plugin development. It seems to me that I need to use absolute path.

my current solution is

$delimiter = strpos(dirname(__FILE__), "/")!==false?"/":"\\"; //win or unix?
$path = explode($delimiter,  dirname(__FILE__));

require_once join(array_slice($path,0,count($path)-3),$delimiter) . "/wp-admin/includes/plugin.php"; 

I wonder if there is a better way to handle this, kind of general approach.

What if the wp plugin directory structure changes. So this part count($path)-3 won't be valid any more ....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

著墨染雨君画夕 2024-11-17 11:46:29

WordPress 在启动时建立包含目录的路径。

require_once ABSPATH 。 WPINC。 '/your-file.php';

WordPress establishes the path to the includes directory on startup.

require_once ABSPATH . WPINC . '/your-file.php';

离旧人 2024-11-17 11:46:29

尝试:

require_once realpath(__DIR__.'/../../..').'/wp-admin/includes/plugin.php';

或者如果您位于 __DIR__ 上,则将 __DIR__ 替换为 dirname(__FILE__) PHP 5.3

或者你可以尝试:

require_once ABSPATH . WPINC . '/plugin.php';

Try:

require_once realpath(__DIR__.'/../../..').'/wp-admin/includes/plugin.php';

Or replace __DIR__ with dirname(__FILE__) if you are on < PHP 5.3

Or you could try:

require_once ABSPATH . WPINC . '/plugin.php';
红尘作伴 2024-11-17 11:46:29

可以利用 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-includes', WP_CONTENT_DIR));
    return $wp_include_dir;
}

Its possible to take advantage of WP_CONTENT_DIR and make a nice constant

define(WP_INCLUDE_DIR, preg_replace('/wp-content$/', 'wp-includes', WP_CONTENT_DIR));

or a function

function wp_include_dir(){
    $wp_include_dir = preg_replace('/wp-content$/', 'wp-includes', WP_CONTENT_DIR));
    return $wp_include_dir;
}
烦人精 2024-11-17 11:46:29

您是否尝试过执行 bloginfo('wpurl') / wp-content/plugins ?

Have you tried doing bloginfo('wpurl') / wp-content/plugins ?

燕归巢 2024-11-17 11:46:29

我曾经将它定义为一个常量,就像其他常量一样......

if(defined('WP_CONTENT_DIR') && !defined('WP_INCLUDE_DIR')){
   define('WP_INCLUDE_DIR', str_replace('wp-content', 'wp-includes', WP_CONTENT_DIR));
}

人们仍然可以使用 is_dir() 检查并进一步遍历(如果需要)。

I used to define it as a constant, like the others ...

if(defined('WP_CONTENT_DIR') && !defined('WP_INCLUDE_DIR')){
   define('WP_INCLUDE_DIR', str_replace('wp-content', 'wp-includes', WP_CONTENT_DIR));
}

One still could check with is_dir() and traverse further, if required.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文