X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/177fd6fefd2e3d5a0ea6591c71d660cabdb3c1a4..607b7e02d77e7326161e8ec15639052d2040f745:/wp-includes/template-loader.php diff --git a/wp-includes/template-loader.php b/wp-includes/template-loader.php index e2a24f20..025f1a84 100644 --- a/wp-includes/template-loader.php +++ b/wp-includes/template-loader.php @@ -3,76 +3,81 @@ * Loads the correct template based on the visitor's url * @package WordPress */ -if ( defined('WP_USE_THEMES') && constant('WP_USE_THEMES') ) { - do_action('template_redirect'); - if ( is_robots() ) { - do_action('do_robots'); - return; - } else if ( is_feed() ) { - do_feed(); - return; - } else if ( is_trackback() ) { - include(ABSPATH . 'wp-trackback.php'); - return; - } else if ( is_404() && $template = get_404_template() ) { - include($template); - return; - } else if ( is_search() && $template = get_search_template() ) { - include($template); - return; - } else if ( is_home() && $template = get_home_template() ) { - include($template); - return; - } else if ( is_attachment() && $template = get_attachment_template() ) { +if ( defined('WP_USE_THEMES') && WP_USE_THEMES ) + /** + * Fires before determining which template to load. + * + * @since 1.5.0 + */ + do_action( 'template_redirect' ); + +/** + * Filters whether to allow 'HEAD' requests to generate content. + * + * Provides a significant performance bump by exiting before the page + * content loads for 'HEAD' requests. See #14348. + * + * @since 3.5.0 + * + * @param bool $exit Whether to exit without generating any content for 'HEAD' requests. Default true. + */ +if ( 'HEAD' === $_SERVER['REQUEST_METHOD'] && apply_filters( 'exit_on_http_head', true ) ) + exit(); + +// Process feeds and trackbacks even if not using themes. +if ( is_robots() ) : + /** + * Fired when the template loader determines a robots.txt request. + * + * @since 2.1.0 + */ + do_action( 'do_robots' ); + return; +elseif ( is_feed() ) : + do_feed(); + return; +elseif ( is_trackback() ) : + include( ABSPATH . 'wp-trackback.php' ); + return; +endif; + +if ( defined('WP_USE_THEMES') && WP_USE_THEMES ) : + $template = false; + if ( is_embed() && $template = get_embed_template() ) : + elseif ( is_404() && $template = get_404_template() ) : + elseif ( is_search() && $template = get_search_template() ) : + elseif ( is_front_page() && $template = get_front_page_template() ) : + elseif ( is_home() && $template = get_home_template() ) : + elseif ( is_post_type_archive() && $template = get_post_type_archive_template() ) : + elseif ( is_tax() && $template = get_taxonomy_template() ) : + elseif ( is_attachment() && $template = get_attachment_template() ) : remove_filter('the_content', 'prepend_attachment'); - include($template); - return; - } else if ( is_single() && $template = get_single_template() ) { - include($template); - return; - } else if ( is_page() && $template = get_page_template() ) { - include($template); - return; - } else if ( is_category() && $template = get_category_template()) { - include($template); - return; - } else if ( is_tag() && $template = get_tag_template()) { - include($template); - return; - } else if ( is_tax() && $template = get_taxonomy_template()) { - include($template); - return; - } else if ( is_author() && $template = get_author_template() ) { - include($template); - return; - } else if ( is_date() && $template = get_date_template() ) { - include($template); - return; - } else if ( is_archive() && $template = get_archive_template() ) { - include($template); - return; - } else if ( is_comments_popup() && $template = get_comments_popup_template() ) { - include($template); - return; - } else if ( is_paged() && $template = get_paged_template() ) { - include($template); - return; - } else if ( file_exists(TEMPLATEPATH . "/index.php") ) { - include(TEMPLATEPATH . "/index.php"); - return; - } -} else { - // Process feeds and trackbacks even if not using themes. - if ( is_robots() ) { - do_action('do_robots'); - return; - } else if ( is_feed() ) { - do_feed(); - return; - } else if ( is_trackback() ) { - include(ABSPATH . 'wp-trackback.php'); - return; + elseif ( is_single() && $template = get_single_template() ) : + elseif ( is_page() && $template = get_page_template() ) : + elseif ( is_singular() && $template = get_singular_template() ) : + elseif ( is_category() && $template = get_category_template() ) : + elseif ( is_tag() && $template = get_tag_template() ) : + elseif ( is_author() && $template = get_author_template() ) : + elseif ( is_date() && $template = get_date_template() ) : + elseif ( is_archive() && $template = get_archive_template() ) : + elseif ( is_paged() && $template = get_paged_template() ) : + else : + $template = get_index_template(); + endif; + /** + * Filters the path of the current template before including it. + * + * @since 3.0.0 + * + * @param string $template The path of the template to include. + */ + if ( $template = apply_filters( 'template_include', $template ) ) { + include( $template ); + } elseif ( current_user_can( 'switch_themes' ) ) { + $theme = wp_get_theme(); + if ( $theme->errors() ) { + wp_die( $theme->errors() ); + } } -} - -?> \ No newline at end of file + return; +endif;