Как получить TEMPLATEPATH без имени темы? Константа THEMEPATH отсутствует?
Существует ли способ получить путь к директории тем без указания текущей темы в пути?
Например, в стандартной установке WordPress мне нужно получить ссылку на:
C:\xampplite\htdocs\sitename/wp-content/themes/
Но константа TEMPLATEPATH возвращает...
C:\xampplite\htdocs\sitename/wp-content/themes/currentActiveTheme

dirname( STYLESHEETPATH );
Это вернет путь к директории темы.
Никогда не предполагайте, что /wp-content/
находится внутри ABSPATH. Я часто использую другую директорию и домен для wp-content
, чтобы разрешить запросы без куки к файлам темы. Плохие плагины и темы ужасно ломаются в таких случаях.
Дополнение
Или используйте 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://), и поскольку я перемещаю файлы, именно это мне и нужно было в данном случае.

Может ли пользователь указать любую другую директорию, отличную от wp-content/themes, для хранения своих тем?

@Scott: Это возможно, но очень сложно реализовать, и маловероятно, что кто-то это делал.

Две строки в wp-config.php не так уж сложны. ;) Просто определите WP_CONTENT_DIR и WP_CONTENT_URL.

@toscho: спасибо, каждый день узнаёшь что-то новое, я как раз читал об этом на http://codex.wordpress.org/Determining_Plugin_and_Content_Directories
