Для чего нужна константа WP_USE_THEMES?


35

Что касается WP_USE_THEMESконстанты, Кодекс заявляет :

Если вы используете Цикл внутри вашего собственного дизайна (и ваш собственный дизайн не является шаблоном), установите для WP_USE_THEMES значение false.

Но как на самом деле влияет WordPress WP_USE_THEMESна значение true или false? Я хотел бы знать, как он используется WP.

Ответы:


35

Это используется только template-loader.phpдля определения, должен ли он загружать файл темы или нет. Обычная «последовательность загрузки» WordPress (запущенная в wp-blog-header.php) загружает плагины, анализирует URL, выполняет пост-запрос на основе URL и вызывает тему. Этот основной пост-запрос обычно используется в «Цикле». Поэтому, если вы хотите получить все преимущества парсинга URL-адресов, но не отображать его с помощью темы сайта, вы можете установить WP_USE_THEMESего, falseи он не будет выполнять этот последний шаг.


Спасибо Ян, я изучу эти файлы дальше, чтобы получить его полностью.
миккельбреум

1
Просто чтобы уточнить, functions.phpфайл активной темы все равно будет загружен. Не загружены только шаблоны темы.
JD

3
Каков практический пример ситуации, когда это используется? Почему кто-то хочет запретить загрузку темы?
Александр Рехштайнер

2
@AlexanderRechsteiner: Возможно, вы реализовали внутреннее действие, которое не должно возвращать полный HTML-ответ. Похоже на то, как реализован cron или API, который возвращает данные в другом формате?
Ян Фабри

Просто чтобы добавить к ответу в комментариях: по-видимому, это вступит в игру, если WordPress будет использоваться без головы (например, через wp-cli).
Лорен Розен

0

Основываясь на этой строке в документации по Loop:

<?php define( 'WP_USE_THEMES', false ); get_header(); ?>

я бы предположил, что целью WP_USE_THEMESв этом примере является запуск обработчиков действий, зарегистрированных вget_header ловушки, но на самом деле не выполнение файла шаблона заголовка.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.