plugin_basename() WP 1.5.0

Отримує ім’я плагіну – відносний шлях до файлу плагіну (від каталогу плагінів, MU плагінів) по переданому шляху на файл.

Відрізає шлях до папки плагінів із зазначеного шляху до папки/файлу плагіну. Залишає шлях від папки плагіна до вказаного файлу плагіна включно.

Шлях виходить без початкового слеша: my-plugin/my-plugin.php.

Використовує константи: WP_PLUGIN_DIRі WPMU_PLUGIN_DIR. Використовувати ці константи не рекомендується.

Якщо плагін складається з одного PHP-файлу і лежить безпосередньо в папці plugins.

Для плагіна, що складається з одного PHP файлу (наприклад, wp-content/plugin.php) та для must-use plugin (наприклад, wp-content/mu-plugins/plugin.php), plugin_basename( __FILE__ ) поверне plugin.php.

1 раз – 0.000039 сек
(дуже швидко) | 50000 разів – 0.63 сек
(дуже швидко)

Хуків немає.

Повертає

Строку. Шлях від папки плагіна до файлу плагіна без слешів на кінцях.

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

plugin_basename($file);
$file
(рядок) (обов’язковий)
Абсолютний шлях до файлу чи папки плагіна.

Приклади

0

#1 Припустимо, що файл плагіна знаходиться по такому шляху:

/home/www/wp-content/plugins/my-plugin/my-plugin.php
тоді викликавши plugin_basename ми отримаємо таке:

$x = plugin_basename(__FILE__); // my-plugin/my-plugin.php

нотатки

  • Global. Масив. $wp_plugin_paths

список змін

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

Код plugin_basename() WP 6.0.2

function plugin_basename( $file ) {
	global $wp_plugin_paths;

	// $wp_plugin_paths contains normalized paths.
	$ file = wp_normalize_path ($ file);

	arsort($wp_plugin_paths);

	foreach ( $wp_plugin_paths as $dir => $realdir ) {
		if ( strpos( $file, $ realdir ) === 0 ) {
			$file = $dir. substr ($ file, strlen ($ realdir));
		}
	}

	$plugin_dir = wp_normalize_path( WP_PLUGIN_DIR );
	$mu_plugin_dir = wp_normalize_path( WPMU_PLUGIN_DIR );

	// Get relative path from plugins directory.
	$file = preg_replace( '#^' . preg_quote( $plugin_dir, '#' ) . '/|^' . preg_quote( $mu_plugin_dir, '#' ) . '/#', '', $file );
	$ file = trim ($ file, '/');
	return $file;
}

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

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