Есть ли способ получить путь к каталогу тем без текущей темы в пути?
т. е. при стандартной установке WP мне нужна ссылка на:
C:\xamplite\htdocs\имя_сайта/wp-content/themes/
Но константа TEMPLATEPATH возвращает…
C:\xamplite\htdocs\имя_сайта/wp-content/themes/currentActiveTheme
Это вернет каталог темы.
Никогда не
/wp-content/
принимайте значения ниже ABSPATH. Я часто использую другой каталог и доменwp-content
, чтобы включить запросы без файлов cookie к файлам темы. Плохие плагины и темы в таких случаях ужасно ломаются.Приложение
Или используйте
get_theme_root()
для пути к файлу иget_theme_root_uri()
для URI. Оба определены вwp-includes/theme.php
.+ 1 Спасибо. Это тоже работает. Будет ли какая-то польза от использования этого ответа по сравнению с ответом imHavoc?
@Scott B Не должно быть никакой разницы.
STYLESHEETPATH
определяется вwp-includes/default-constants.php
вызовеget_stylesheet_directory()
, который спрашиваетget_theme_root()
.на самом деле, после дальнейшего рассмотрения, ваш ответ является более подходящим ответом на мой вопрос. он возвращает путь к файлу, а не URL-адрес, как это делает get_theme_root_uri() (c:\, а не http://), и, поскольку я перемещаю файлы, это то, что мне нужно в этом случае.
@Scott BI добавил две функции для пути и URI для завершения ответа.
Это похоже на лучший вариант. Сейчас тестирую.
Это работает отлично, однако в данном случае я ищу путь к файлу, а не URL-адрес. Я перемещаю файлы на сервере из папки плагинов в папку тем. Однако ваш ответ работает нормально, в зависимости от контекста вопроса.
Может ли пользователь указать любой другой каталог, кроме wp-content/themes, для хранения своих тем?
@Scott: Это возможно, но очень трудно выполнить и маловероятно, что у кого-то есть.
Две строчки в файле wp-config.php — это не так уж сложно. 😉 Просто определите WP_CONTENT_DIR и WP_CONTENT_URL.
@toscho: спасибо, ты узнаешь что-то новое каждый день, я как раз читал об этом на codex.wordpress.org/Determining_Plugin_and_Content_Directories
Константы THEMEPATH нет, но вы можете использовать эту
get_theme_root_uri()
функцию для получения пути к папке тем.WP_CONTENT_DIR и WP_CONTENT_URL, а также content_url() помогут вам в этом.
Вы можете использовать константу
ABSPATH
и просто добавить к нейwp-content/themes/
так: