如何获取WordPress中的当前插件目录?

时间:2010-06-27 20:55:57

标签: php wordpress plugins

我需要获取当前的插件目录,如

[wordpress_install_dir]/wp-content/plugins/plugin_name

(如果从插件中调用getcwd(),它将返回[wordpress_install_dir],即安装的根目录)

感谢您的帮助

10 个答案:

答案 0 :(得分:67)

为什么不使用专门为此目的设计的WordPress核心功能?

<?php plugin_dir_path( __FILE__ ); ?>

请参阅食典文件here

你也有

<?php plugin_dir_url( __FILE__ ); ?>

如果您要查找的是URI而不是服务器路径。

请参阅食典文件here

IMO总是最好使用核心中可用的最高级别方法,就是这样。它使您的代码更具前瞻性。

答案 1 :(得分:36)

看看你自己的答案@Bog,我想你想要;

$plugin_dir_path = dirname(__FILE__);

答案 2 :(得分:14)

这实际上会得到你想要的结果:

<?php plugin_dir_url(__FILE__); ?>

http://codex.wordpress.org/Function_Reference/plugin_dir_url

答案 3 :(得分:8)

要获取插件目录,您可以使用Wordpress函数plugin_basename($file)。所以你会使用如下来提取插件的文件夹和文件名:

$plugin_directory = plugin_basename(__FILE__); 

您可以将其与插件目录的URL或服务器路径结合使用。因此,您可以使用常量WP_PLUGIN_URL来获取插件目录URL或WP_PLUGIN_DIR以获取服务器路径。但正如下面评论中提到的Mark Jaquith一样,只有插件位于Wordpress插件目录中才有效。

Wordpress codex中了解更多相关信息。

答案 4 :(得分:3)

$full_path = WP_PLUGIN_URL . '/'. str_replace( basename( __FILE__ ), "", plugin_basename(__FILE__) );
  • WP_PLUGIN_URL - 插件目录的网址
  • WP_PLUGIN_DIR - 插件目录的服务器路径

此链接可能会有所帮助: http://codex.wordpress.org/Determining_Plugin_and_Content_Directories

答案 5 :(得分:2)

试试这个:

function PluginUrl() {

        //Try to use WP API if possible, introduced in WP 2.6
        if (function_exists('plugins_url')) return trailingslashit(plugins_url(basename(dirname(__FILE__))));

        //Try to find manually... can't work if wp-content was renamed or is redirected
        $path = dirname(__FILE__);
        $path = str_replace("\\","/",$path);
        $path = trailingslashit(get_bloginfo('wpurl')) . trailingslashit(substr($path,strpos($path,"wp-content/")));
        return $path;
    }

echo PluginUrl();将返回当前的插件网址。

答案 6 :(得分:1)

自WP 2.6.0起,您可以使用plugins_url()方法。

答案 7 :(得分:1)

当我需要获取目录时,不仅是插件( plugin_dir_path ),而是更通用的插件,您可以使用__DIR__,它会为您提供路径调用文件的目录。现在您可以使用 functions.php 或其他文件!

<强>描述

  

文件的目录。如果在include中使用,则目录为   包含的文件被返回。这相当于   目录名(__FILE__)。此目录名称没有尾部斜杠   除非它是根目录。 1

答案 8 :(得分:0)

如果您想在文件中获取当前目录路径,则可以将__FILE____DIR__plugin_dir_path()作为一起运行:

$dir_path = plugin_dir_path( __FILE__ );

CurrentDirectory路径:

/home/user/var/www/wordpress_site/wp-content/plugins/custom-plugin/

__FILE__ magic constant返回当前目录路径。

如果你想从当前目录升级一级。你应该使用__DIR__魔法常数:

当前路径:

/home/user/var/www/wordpress_site/wp-content/plugins/custom-plugin/

$dir = plugin_dir_path( __DIR__ );

一级上升路径:

 /home/user/var/www/wordpress_site/wp-content/plugins/

__DIR__ magic constant返回一个级别的目录路径。

答案 9 :(得分:0)

在插件的主 PHP 文件中,这只适用于管理员:

$plugin_data = get_plugin_data( __FILE__ );
$plugin_name = $plugin_data['Name'];