home *** CD-ROM | disk | FTP | other *** search
/ HTML Examples / WP.iso / wordpress / wp-includes / template-loader.php < prev    next >
Encoding:
PHP Script  |  2016-10-07  |  2.8 KB  |  83 lines

  1. <?php
  2. /**
  3.  * Loads the correct template based on the visitor's url
  4.  * @package WordPress
  5.  */
  6. if ( defined('WP_USE_THEMES') && WP_USE_THEMES )
  7.     /**
  8.      * Fires before determining which template to load.
  9.      *
  10.      * @since 1.5.0
  11.      */
  12.     do_action( 'template_redirect' );
  13.  
  14. /**
  15.  * Filters whether to allow 'HEAD' requests to generate content.
  16.  *
  17.  * Provides a significant performance bump by exiting before the page
  18.  * content loads for 'HEAD' requests. See #14348.
  19.  *
  20.  * @since 3.5.0
  21.  *
  22.  * @param bool $exit Whether to exit without generating any content for 'HEAD' requests. Default true.
  23.  */
  24. if ( 'HEAD' === $_SERVER['REQUEST_METHOD'] && apply_filters( 'exit_on_http_head', true ) )
  25.     exit();
  26.  
  27. // Process feeds and trackbacks even if not using themes.
  28. if ( is_robots() ) :
  29.     /**
  30.      * Fired when the template loader determines a robots.txt request.
  31.      *
  32.      * @since 2.1.0
  33.      */
  34.     do_action( 'do_robots' );
  35.     return;
  36. elseif ( is_feed() ) :
  37.     do_feed();
  38.     return;
  39. elseif ( is_trackback() ) :
  40.     include( ABSPATH . 'wp-trackback.php' );
  41.     return;
  42. endif;
  43.  
  44. if ( defined('WP_USE_THEMES') && WP_USE_THEMES ) :
  45.     $template = false;
  46.     if     ( is_embed()          && $template = get_embed_template()          ) :
  47.     elseif ( is_404()            && $template = get_404_template()            ) :
  48.     elseif ( is_search()         && $template = get_search_template()         ) :
  49.     elseif ( is_front_page()     && $template = get_front_page_template()     ) :
  50.     elseif ( is_home()           && $template = get_home_template()           ) :
  51.     elseif ( is_post_type_archive() && $template = get_post_type_archive_template() ) :
  52.     elseif ( is_tax()            && $template = get_taxonomy_template()       ) :
  53.     elseif ( is_attachment()     && $template = get_attachment_template()     ) :
  54.         remove_filter('the_content', 'prepend_attachment');
  55.     elseif ( is_single()         && $template = get_single_template()         ) :
  56.     elseif ( is_page()           && $template = get_page_template()           ) :
  57.     elseif ( is_singular()       && $template = get_singular_template()       ) :
  58.     elseif ( is_category()       && $template = get_category_template()       ) :
  59.     elseif ( is_tag()            && $template = get_tag_template()            ) :
  60.     elseif ( is_author()         && $template = get_author_template()         ) :
  61.     elseif ( is_date()           && $template = get_date_template()           ) :
  62.     elseif ( is_archive()        && $template = get_archive_template()        ) :
  63.     else :
  64.         $template = get_index_template();
  65.     endif;
  66.     /**
  67.      * Filters the path of the current template before including it.
  68.      *
  69.      * @since 3.0.0
  70.      *
  71.      * @param string $template The path of the template to include.
  72.      */
  73.     if ( $template = apply_filters( 'template_include', $template ) ) {
  74.         include( $template );
  75.     } elseif ( current_user_can( 'switch_themes' ) ) {
  76.         $theme = wp_get_theme();
  77.         if ( $theme->errors() ) {
  78.             wp_die( $theme->errors() );
  79.         }
  80.     }
  81.     return;
  82. endif;
  83.