WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.

share|improve this question
up vote 23 down vote accepted

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.

share|improve this answer
Thanks Jan, I'll study those files further to get it fully. – mikkelbreum Mar 24 '11 at 13:05
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. Jan 31 '14 at 20:33
What would be a practical example of a situation where this is used? Why would someone want to prevent the theme from loading? – Alexander Rechsteiner Feb 19 '14 at 12:18
@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 Feb 19 '14 at 15:42

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.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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