plugin_basename

Отрезает из переданного пути до файла или папки, путь до папки плагинов. Оставляет путь от папки плагина до указанного файла плагина. Путь получается без начального и конечного слэшей: my-plugin/my-plugin.php.

Использует константы: WP_PLUGIN_DIR и WPMU_PLUGIN_DIR. Использовать внутренние константы на прямую не рекомендуется.

✈ 1 раз = 0.000039с = очень быстро | 50000 раз = 0.63с = очень быстро

Хуков нет.

Возвращает

Строку. Путь от папки плагина до файла плагина без слэшей на концах.

Использование

plugin_basename( $file );
$file(строка) (обязательный)
Абсолютный путь до файла или папки плагина.
По умолчанию: нет

Примеры

#1. Предположим что файл плагина находится по такому пути:

/home/www/wp-content/plugins/my-plugin/my-plugin.php
тогда вызвав plugin_basename мы получим следующее:

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

Код из


wp-includes/plugin.php

WP 4.7.2

<?php
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 );

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