Функция plugin_dir_url()
в WordPress возвращает URL директории, где расположен указанный файл плагина. Чаще всего используется для формирования ссылки на ресурсы (скрипты, стили, изображения) в пределах плагина.
plugin_dir_url( string $file ): string
Функция принимает путь к файлу плагина и возвращает URL директории, где расположен этот файл, со слэшем на конце.
Параметры
$file
(строка, обязательный)
Полный путь к файлу плагина, обычно используется__FILE__
для указания текущего файла.
Возвращаемое значение
Функция возвращает строку с URL к каталогу, в котором находится указанный файл.
Пример 1: Получение URL для изображения внутри плагина
Допустим, в плагине есть папка assets
с изображением icon.png
. Чтобы получить ссылку на это изображение:
echo '<img src="' . plugin_dir_url(__FILE__) . 'assets/icon.png" alt="Plugin Icon">';
Этот код вернет:
<img src="http://example.com/wp-content/plugins/my-plugin/assets/icon.png" alt="Plugin Icon">
Пример 2: Подключение CSS файла для плагина
Часто используется для регистрации и подключения CSS файлов:
function myplugin_enqueue_styles() {
wp_register_style('myplugin-style', plugin_dir_url(__FILE__) . 'css/style.css');
wp_enqueue_style('myplugin-style');
}
add_action('wp_enqueue_scripts', 'myplugin_enqueue_styles');
Этот код зарегистрирует и подключит CSS файл style.css
, который находится в папке css
плагина:
<link rel="stylesheet" href="http://example.com/wp-content/plugins/my-plugin/css/style.css">
Пример 3: Подключение JavaScript с использованием plugin_dir_url()
Если нужно подключить JavaScript файл, также можно использовать plugin_dir_url()
:
function myplugin_enqueue_scripts() {
wp_enqueue_script('myplugin-script', plugin_dir_url(__FILE__) . 'js/script.js', array('jquery'), '', true);
}
add_action('wp_enqueue_scripts', 'myplugin_enqueue_scripts');
Этот код добавит script.js
, который расположен в папке js
плагина.
Пример 4: Обработка URL для ресурсов из подкаталога
Когда файл плагина находится в подкаталоге, можно использовать dirname(__FILE__)
, чтобы получить путь к родительскому каталогу. Например:
echo plugin_dir_url(dirname(__FILE__)) . 'assets/logo.png';
Этот код вернет URL к logo.png
, лежащему в папке assets
внутри директории плагина:
http://example.com/wp-content/plugins/my-plugin/assets/logo.png
Пример 5: Подключение ресурсов в админке
Для подключения стилей и скриптов только на страницах админки:
function myplugin_admin_assets() {
wp_enqueue_style('admin-style', plugin_dir_url(__FILE__) . 'css/admin-style.css');
wp_enqueue_script('admin-script', plugin_dir_url(__FILE__) . 'js/admin-script.js', array('jquery'), '', true);
}
add_action('admin_enqueue_scripts', 'myplugin_admin_assets');
Когда использовать plugin_dir_url()
- Для плагинов: Используйте
plugin_dir_url()
для получения URL к ресурсам (CSS, JS, изображения), расположенным внутри папки плагина. - Для тем: В случае тем WordPress аналогом является функция
get_template_directory_uri()
.
Заключение
Функция plugin_dir_url()
упрощает работу с URL внутри плагина, формируя корректные ссылки на файлы и директории.