Документация WordPress для определения плагинов и каталогов контента гласит:
WordPress использует следующие константы при определении пути к каталогам содержимого и плагинов. Они не должны использоваться непосредственно плагинами или темами , но перечислены здесь для полноты.
Далее следует перечислить WP_CONTENT_DIR
и WP_PLUGIN_DIR
среди констант, которые разработчики тем и плагинов не должны использовать, предположительно из-за этого:
WordPress позволяет пользователям размещать свои каталоги wp-контента в любом месте, поэтому они никогда не должны предполагать, что плагины будут в wp-content / plugins, или что загрузки будут в wp-content / uploads, или что темы будут в wp- содержание / тема.
Марк Джакит также комментирует здесь, что эти константы не должны использоваться:
Не используйте WP_PLUGIN_URL или WP_PLUGIN_DIR - плагины могут отсутствовать в каталоге плагинов.
Итак, каков приемлемый способ ссылки на полный путь к папкам с плагинами, wp-контентом и темами без использования этих констант?
В качестве простого примера, чтобы вывести полный путь всех установленных плагинов, я могу сделать это:
<?php
$plugins = get_plugins();
foreach ($plugins as $file => $details) {
echo WP_PLUGIN_DIR . '/' . $file . '<br>';
}
Который производит список примерно так:
/var/www/wp-content/plugins/akismet/akismet.php
/var/www/wp-content/plugins/debug-bar/debug-bar.php
/var/www/wp-content/plugins/hello.php
(Я мог бы хотеть сделать это, если бы я писал плагин, чтобы позволить пользователю выборочно архивировать плагины как часть резервной копии сайта, например.)
Если использование WP_PLUGIN_DIR
является неправильным, какова предлагаемая альтернатива? Не существует эквивалента wp_upload_dir()
для плагинов, тем и папки wp-content, которые я могу найти, что делает проблематичным обращение к потенциально блуждающим темам и корневым каталогам плагинов.
WP_PLUGIN_DIR
, следовательно, мой вопрос здесь.