plugins_url() WP 2.6.0

Отримує URL папки плагінів або mu (must use) плагінів (без слеша на кінці).

Доповнити отриманий URL можна вказавши перший параметр $ path .

Також можна використовувати чарівну PHP константу __FILE__для другого параметра, щоб отримати шлях до папки, в якій знаходиться вказаний __FILE__. Функція порівняє шлях до папки плагінів і повний шлях до файлу з якого викликається функція, і доповнить шлях від директорією плагінів до зазначеного файлу.

Використовує константи: WP_PLUGIN_DIRабо WPMU_PLUGIN_URLяк базу для створення підсумкової URL-адреси.

нотатки
  1. Не рекомендується використовувати константи WP_PLUGIN_URL , WPMU_PLUGIN_URL для отримання шляхів.

  2. Функцію не рекомендується викликати із глобального контексту плагіна. Її краще викликати пізніше, після того, як всі плагіни підключаться – це хук plugins_url вже висять функції, які можуть додати інші плагіни, для зміни результату роботи цієї функції.

Використовуйте plugin_dir_url( __FILE__ ) в основному файлі плагіна, щоб отримати URL на основну папку плагіна.

Основа для:
plugin_dir_url()
1 раз – 0.000034 сек
(дуже швидко) | 50000 разів – 0.71 сек
(дуже швидко)

Хуки з функції

Повертає

Строку. URL до вказаного файлу плагіна.

Використання

plugins_url ($ path, $ plugin);
$path
(рядок)
Шлях до файлу плагіну (щодо каталогу плагінів), URL на який потрібно отримати,


За замовчуванням: ”
$plugin
(рядок)
Шлях після директорії плагінів, який має бути після каталогу плагінів та до вказаного файлу у першому параметрі. У цьому параметрі часто використовується константа
__FILE__, дивіться приклади.


За замовчуванням: ”

Приклади

1

#1 Ще один приклад з __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">.
0

#2 Демонстрація роботи функції:

echo plugins_url();
// поверне: http://wp-kama.ru/wp-content/plugins

echo plugins_url('plugin-name/style.css');
// поверне: http://wp-kama.ru/wp-content/plugins/plugin-name/style.css
0

#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

У цьому випадку функція повинна викликатись з тієї ж директорії, де лежить файл.

0

#4 Виклик із підкатегорії категорії плагіна

Якщо plugins_url() викликається з файлу, що знаходиться в підкаталозі плагіна, то у другому параметрі потрібно використовувати dirname() :

echo '<img src="' . plugins_url( 'images/wordpress.png' , dirname(__FILE__) ) . '" > ';

Тут у другому параметрі ми вказали шлях до батьківської директорії каталогу файлу з якого викликається функція.

список змін

З версії 2.6.0Введено.

Код plugins_url() WP 6.0.2

function plugins_url( $path = '', $plugin = '' ) {

	$ path = wp_normalize_path ($ path);
	$plugin = wp_normalize_path( $plugin );
	$mu_plugin_dir = wp_normalize_path( WPMU_PLUGIN_DIR );

	if ( ! empty( $plugin ) && 0 === strpos( $plugin, $mu_plugin_dir ) ) {
		$url = WPMU_PLUGIN_URL;
	} else {
		$url = WP_PLUGIN_URL;
	}

	$url = set_url_scheme($url);

	if ( ! empty( $plugin ) && is_string( $plugin ) ) {
		$folder = dirname( plugin_basename( $plugin ) );
		if ( '.' !== $folder ) {
			$url .= '/' . ltrim ($ folder, '/');
		}
	}

	if ( $path && is_string( $path ) ) {
		$url .= '/' . ltrim($ path, '/');
	}

	/**
	 * Filters the URL для plugins directory.
	 *
	 * @ Since 2.8.0
	 *
	 * @param string $url Докладна URL-адреса до plugins directory, включаючи scheme and path.
	 * @param string $path Path відносяться до URL до plugins directory. Blank string
	 * if no path is specified.
	 * @param string $plugin Plug-in file path to be relative to. Blank string if no plugin
	 * is specified.
	 */
	return apply_filters( 'plugins_url', $url, $path, $plugin );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *