Подтвердить что ты не робот

Как получить текущий каталог плагина в WordPress?

Мне нужно получить текущий каталог плагина, например

[wordpress_install_dir]/wp-content/plugins/plugin_name

(если getcwd() вызывается из плагина, он возвращает [wordpress_install_dir], корень установки)

спасибо за помощь

4b9b3361

Ответ 1

Глядя на свой собственный ответ @Bog, я думаю, что вы хотите;

$plugin_dir_path = dirname(__FILE__);

Ответ 2

Почему бы не использовать основную функцию WordPress, разработанную специально для этой цели?

<?php plugin_dir_path( __FILE__ ); ?>

См. документацию Codex здесь.

У вас также есть

<?php plugin_dir_url( __FILE__ ); ?>

если вы ищете URI, а не путь к серверу.

См. документацию Codex здесь.

IMO всегда лучше использовать метод самого высокого уровня, доступный в ядре, и это все. Это делает ваш код более перспективным.

Ответ 4

Чтобы получить каталог плагинов, вы можете использовать функцию Wordpress plugin_basename($file). Таким образом, вы должны использовать следующее, чтобы извлечь папку и имя файла плагина:

$plugin_directory = plugin_basename(__FILE__); 

Вы можете объединить это с URL или путь к серверу в каталоге плагина. Для этого вы можете использовать константы WP_PLUGIN_URL, чтобы получить URL-адрес плагина или WP_PLUGIN_DIR, чтобы получить путь к серверу. Но как Mark Jaquith, упомянутый в комментарии ниже, это работает только в том случае, если плагины находятся в каталоге плагина Wordpress.

Подробнее об этом читайте в Wordpress codex.

Ответ 5

$full_path = WP_PLUGIN_URL . '/'. str_replace( basename( __FILE__ ), "", plugin_basename(__FILE__) );
  • WP_PLUGIN_URL - URL-адрес каталога плагинов
  • WP_PLUGIN_DIR - путь к серверу в каталоге плагинов

Эта ссылка может помочь: http://codex.wordpress.org/Determining_Plugin_and_Content_Directories.

Ответ 6

Попробуйте следующее:

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(); вернет текущий URL-адрес плагина.

Ответ 7

Начиная с WP 2.6.0 вы можете использовать метод plugins_url().

Ответ 8

Когда мне нужно получить каталог не только для плагинов (plugin_dir_path), но и более общий, вы можете использовать __DIR__, он предоставит вам путь к каталогу вызываемого файла. Теперь вы можете использовать from functions.php или другой файл!

Описание

Каталог файла. Если используется внутри include, то каталог возвращается возвращаемый файл. Это эквивалентно имя_директории (__FILE__). Это имя каталога не имеет завершающей косой черты если он не является корневым каталогом. 1