Wofür ist die Konstante WP_USE_THEMES?

35

In Bezug auf die WP_USE_THEMESKonstante heißt es im Kodex :

Wenn Sie The Loop in Ihrem eigenen Design verwenden (und Ihr eigenes Design keine Vorlage ist), setzen Sie WP_USE_THEMES auf false.

Aber wie wirkt es sich auf WordPress aus, WP_USE_THEMESwenn es auf true oder false gesetzt wird? Ich würde gerne wissen, wie es von WP verwendet wird.

mikkelbreum
quelle

Antworten:

35

Dies wird nur verwendet template-loader.php, um zu bestimmen, ob eine Designdatei geladen werden soll oder nicht. Die normale "Startsequenz" von WordPress (gestartet in wp-blog-header.php) lädt die Plugins, analysiert die URL, führt eine Post-Abfrage basierend auf der URL aus und ruft das Thema auf. Diese Hauptpost-Abfrage wird normalerweise in "The Loop" verwendet. Wenn Sie also alle Vorteile des URL-Parsings nutzen möchten, es jedoch nicht unter Verwendung des Site-Themas anzeigen möchten, können Sie festlegen WP_USE_THEMES, falsedass dieser letzte Schritt nicht ausgeführt wird.

Jan Fabry
quelle
Danke Jan, ich werde diese Dateien weiter studieren, um sie vollständig zu bekommen.
Mikkelbreum
1
Zur Verdeutlichung wird die functions.phpDatei des aktiven Themas weiterhin geladen. Es werden nur die Designvorlagen nicht geladen.
JD
3
Was wäre ein praktisches Beispiel für eine Situation, in der dies verwendet wird? Warum sollte jemand verhindern wollen, dass das Thema geladen wird?
Alexander Rechsteiner
2
@AlexanderRechsteiner: Vielleicht haben Sie eine Backend-Aktion implementiert, die keine vollständige HTML-Antwort zurückgeben sollte. Ähnlich wie cron implementiert ist oder eine API, die die Daten in einem anderen Format zurückgibt?
Jan Fabry
Nur um die Antwort in den Kommentaren zu ergänzen: Vermutlich würde dies ins Spiel kommen, wenn WordPress kopflos verwendet würde (z. B. über wp-cli).
Loren Rosen
0

Basierend auf dieser Zeile in der The Loop-Dokumentation: In diesem Beispiel wird

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

davon ausgegangen, dass der Zweck WP_USE_THEMESdarin besteht, für den get_headerHook registrierte Aktionshandler auszuführen, die Header-Vorlagendatei jedoch nicht tatsächlich auszuführen.

Kevin Wheeler
quelle