plugins_url()
Получает URL папки плагинов или mu (must use) плагинов (без слэша на конце).
Дополнить полученный URL можно указав первый параметр $path.
Также можно использовать волшебную PHP константу __FILE__ для второго параметра, чтобы получить путь до папки в которой находится указанный __FILE__. Функция сравнит путь до папки плагинов и полный путь до файла из которого вызывается функция, и дополнит недостающий путь от директорией плагинов до указанного файла.
Использует константы: WP_PLUGIN_URL или WPMU_PLUGIN_URL в качестве базы для создания итогового URL.
Заметки
-
Не рекомендуется использовать константы
WP_PLUGIN_URL,WPMU_PLUGIN_URL, вместо этой фукнции. - Функцию не рекомендуется вызывать из глобального контекста плагина. Её лучше вызывать позже, после того как все плагины подключатся - это хук plugins_loaded и любые более поздние хуки. Нужно это, чтобы быть уверенным, что на хуке plugins_url уже висят функции, которые могут добавить другие плагины, для изменения результата работы этой функции.
Используйте plugin_dir_url( __FILE__ ) в основном файле плагина, чтобы получить URL на основную папку плагина.
Используйте WP_PLUGIN_DIR или WPMU_PLUGIN_DIR, чтобы получить пусть до папки плагинов, а не УРЛ.
Хуки из функции
Возвращает
Строку. URL до указанного файла плагина.
Использование
plugins_url( $path, $plugin );
- $path(строка)
- Путь до файла плагина (относительно каталога плагинов), URL на который нужно получить,
По умолчанию: '' - $plugin(строка)
- Путь после директории плагинов, который должен быть после каталога плагинов и до указанного файла в первом параметре. В этом параметре часто используется константа __FILE__ смотрите примеры.
По умолчанию: ''
Примеры
#1 УРЛ из категории на уровень выше
Когда plugins_url() вызывается из файла, который находится в под-каталоге плагина, и нужно получить УРЛ на каталог из уровня выше, то во втором параметре нужно использовать __DIR__.
Например код вызывается из файла .../my-plugin/includes/enqueue.php, а нужно получить УРЛ до файла .../my-plugin/images/img.png:
$img_url = plugins_url( 'images/img.png' , __DIR__ ); // или $parent_url = dirname( plugins_url( '', __FILE__ ) ); $img_url = "$parent_url/images/img.png";
#2 Демо
echo plugins_url(); // http://example.com/wp-content/plugins echo plugins_url( 'plugin-name/style.css' ); // http://example.com/wp-content/plugins/plugin-name/style.css // вызывается из файла, который находится в корне плагина echo plugins_url( 'style.css', __FILE__ ); // http://example.com/wp-content/plugins/plugin-name/style.css
#3 Динамическое указание пути до файла плагина
Мы можем указать путь в первом параметре жестко: plugin-name/style.css, но в этом случае, если мы переименуем папку плагина, то ссылка окажется битой, чтобы этого не произошло, можно использовать __FILE__ во втором параметре, тогда функция сама допишет недостающий путь между папкой плагинов и указанным файлом.
Допустим, папка нашего плагина называется plugin-name и в ней лежит файл style.css, нам нужно получить ссылку на этот файл, пишем так:
$plugins_url = plugins_url( 'style.css', __FILE__ ); echo $plugins_url; // вернет: http://example.com/wp-content/plugins/plugin-name/style.css
В этом случае функция должна вызываться из той же директории, где лежит файл.
Другой пример с __FILE__
В папке плагина есть каталог images и файл wordpress.png, и в этой же папке лежит исполняемый php файл, в котором нам нужно получить ссылку на картинку, тогда в нем используем такой код:
echo '<img src="'. plugins_url( 'images/wordpress.png' , __FILE__ ) .'" > '; // получим: <img src="http://www.example.com/wp-content/plugins/my-plugin/images/wordpress.png">.
Список изменений
| С версии 2.6.0 | Введена. |