A quoi sert la constante WP_USE_THEMES?

35

En ce qui concerne la WP_USE_THEMESconstante, le Codex déclare :

Si vous utilisez The Loop dans votre propre conception (et que votre propre conception n'est pas un modèle), définissez WP_USE_THEMES sur false.

Mais quel est l'effet réel sur WordPress d' WP_USE_THEMESêtre défini sur true ou false? Je voudrais savoir comment il est utilisé par WP.

Mikkelbreum
la source

Réponses:

35

Ceci n’est utilisé que dans template-loader.php, pour déterminer s’il faut ou non charger un fichier de thème. La "séquence de démarrage" normale de WordPress (démarré dans wp-blog-header.php) charge les plug-ins, analyse l'URL, exécute une requête de publication basée sur l'URL et appelle le thème. Cette requête principale est généralement utilisée dans "The Loop". Par conséquent, si vous souhaitez bénéficier de tous les avantages de l'analyse des URL sans l'afficher à l'aide du thème du site, vous pouvez définir cette option WP_USE_THEMESpour falsequ'elle n'exécute pas cette dernière étape.

Jan Fabry
la source
Merci Jan, je vais étudier ces fichiers plus à fond pour l'obtenir.
Mikkelbreum
1
Juste pour clarifier, le functions.phpfichier du thème actif sera toujours chargé. Seuls les modèles de thème ne sont pas chargés.
JD
3
Quel serait un exemple pratique d'une situation où cela est utilisé? Pourquoi quelqu'un voudrait-il empêcher le chargement du thème?
Alexander Rechsteiner
2
@AlexanderRechsteiner: Vous avez peut-être implémenté une action backend qui ne devrait pas renvoyer une réponse HTML complète. Semblable à la façon dont cron est implémenté ou à une API qui renvoie les données dans un autre format?
Jan Fabry
Ajoutons simplement à la réponse dans les commentaires: cela entrerait vraisemblablement en jeu si WordPress était utilisé sans tête (par exemple, via wp-cli).
Loren Rosen le
0

Sur la base de cette ligne de la documentation de The Loop:

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

Je suppose que, WP_USE_THEMESdans cet exemple, le but est d’exécuter des gestionnaires d’actions inscrits dans le get_headerhook, mais pas d’exécuter le fichier de modèle d’en-tête.

Kevin Wheeler
la source