Мне нужно получить текущий каталог плагина, например
[wordpress_install_dir]/wp-content/plugins/plugin_name
(если getcwd()
вызывается из плагина, он возвращает [wordpress_install_dir]
, корень установки)
спасибо за помощь
Мне нужно получить текущий каталог плагина, например
[wordpress_install_dir]/wp-content/plugins/plugin_name
(если getcwd()
вызывается из плагина, он возвращает [wordpress_install_dir]
, корень установки)
спасибо за помощь
Глядя на свой собственный ответ @Bog, я думаю, что вы хотите;
$plugin_dir_path = dirname(__FILE__);
Почему бы не использовать основную функцию WordPress, разработанную специально для этой цели?
<?php plugin_dir_path( __FILE__ ); ?>
См. документацию Codex здесь.
У вас также есть
<?php plugin_dir_url( __FILE__ ); ?>
если вы ищете URI, а не путь к серверу.
См. документацию Codex здесь.
IMO всегда лучше использовать метод самого высокого уровня, доступный в ядре, и это все. Это делает ваш код более перспективным.
Это приведет к желаемому результату:
<?php plugin_dir_url(__FILE__); ?>
http://codex.wordpress.org/Function_Reference/plugin_dir_url
Чтобы получить каталог плагинов, вы можете использовать функцию Wordpress plugin_basename($file)
. Таким образом, вы должны использовать следующее, чтобы извлечь папку и имя файла плагина:
$plugin_directory = plugin_basename(__FILE__);
Вы можете объединить это с URL или путь к серверу в каталоге плагина. Для этого вы можете использовать константы WP_PLUGIN_URL
, чтобы получить URL-адрес плагина или WP_PLUGIN_DIR
, чтобы получить путь к серверу. Но как Mark Jaquith, упомянутый в комментарии ниже, это работает только в том случае, если плагины находятся в каталоге плагина Wordpress.
Подробнее об этом читайте в Wordpress codex.
$full_path = WP_PLUGIN_URL . '/'. str_replace( basename( __FILE__ ), "", plugin_basename(__FILE__) );
Эта ссылка может помочь: http://codex.wordpress.org/Determining_Plugin_and_Content_Directories.
Попробуйте следующее:
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-адрес плагина.
Начиная с WP 2.6.0 вы можете использовать метод plugins_url()
.
Когда мне нужно получить каталог не только для плагинов (plugin_dir_path), но и более общий, вы можете использовать __DIR__
, он предоставит вам путь к каталогу вызываемого файла. Теперь вы можете использовать from functions.php или другой файл!
Описание
Каталог файла. Если используется внутри include, то каталог возвращается возвращаемый файл. Это эквивалентно имя_директории (
__FILE__
). Это имя каталога не имеет завершающей косой черты если он не является корневым каталогом. 1