39

Regarding the WP_USE_THEMES constant, the Codex states:

If you are using The Loop inside your own design (and your own design is not a template), set WP_USE_THEMES to false.

But what is the actual effect on WordPress from WP_USE_THEMES being set to true or false? I would like to know how it's used by WP.

2 Answers 2

40

This is only used in template-loader.php, to determine whether it should load a theme file or not. The normal "boot sequence" of WordPress (started in wp-blog-header.php) loads the plugins, parses the URL, executes a post query based on the URL, and calls the theme. This main post query is typically used in "The Loop". So if you want all the advantages of URL parsing but not display it using the site theme, you can set WP_USE_THEMES to false and it will not execute that final step.

5
  • Thanks Jan, I'll study those files further to get it fully. Commented Mar 24, 2011 at 13:05
  • 2
    Just to clarify, the active theme's functions.php file will still be loaded. It is only the theme template(s) that aren't loaded.
    – J.D.
    Commented Jan 31, 2014 at 20:33
  • 4
    What would be a practical example of a situation where this is used? Why would someone want to prevent the theme from loading? Commented Feb 19, 2014 at 12:18
  • 2
    @AlexanderRechsteiner: Maybe you implemented a backend action, that should not return a full HTML response. Similar to how cron is implemented, or an API that returns the data in another format?
    – Jan Fabry
    Commented Feb 19, 2014 at 15:42
  • Just to add to the answer in the comments: presumably, this would come into play if WordPress was used headlessly (e.g., via wp-cli). Commented Apr 14, 2019 at 22:47
1

Based on this line in The Loop documentation:

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

I would assume that the purpose of WP_USE_THEMES in this example is to run action handlers registered to the get_header hook, but not actually execute the header template file.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.