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

35

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

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

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

mikkelbreum
источник

Ответы:

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 ловушки, но на самом деле не выполнение файла шаблона заголовка.

Кевин Уилер
источник