| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | <?php/** * Loads the correct template based on the visitor's url * * @package WordPress */if ( wp_using_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;}if ( wp_using_themes() ) {	$tag_templates = array(		'is_embed'             => 'get_embed_template',		'is_404'               => 'get_404_template',		'is_search'            => 'get_search_template',		'is_front_page'        => 'get_front_page_template',		'is_home'              => 'get_home_template',		'is_privacy_policy'    => 'get_privacy_policy_template',		'is_post_type_archive' => 'get_post_type_archive_template',		'is_tax'               => 'get_taxonomy_template',		'is_attachment'        => 'get_attachment_template',		'is_single'            => 'get_single_template',		'is_page'              => 'get_page_template',		'is_singular'          => 'get_singular_template',		'is_category'          => 'get_category_template',		'is_tag'               => 'get_tag_template',		'is_author'            => 'get_author_template',		'is_date'              => 'get_date_template',		'is_archive'           => 'get_archive_template',	);	$template      = false;	// Loop through each of the template conditionals, and find the appropriate template file.	foreach ( $tag_templates as $tag => $template_getter ) {		if ( call_user_func( $tag ) ) {			$template = call_user_func( $template_getter );		}		if ( $template ) {			if ( 'is_attachment' === $tag ) {				remove_filter( 'the_content', 'prepend_attachment' );			}			break;		}	}	if ( ! $template ) {		$template = get_index_template();	}	/**	 * Filters the path of the current template before including it.	 *	 * @since 3.0.0	 *	 * @param string $template The path of the template to include.	 */	$template = apply_filters( 'template_include', $template );	if ( $template ) {		include( $template );	} elseif ( current_user_can( 'switch_themes' ) ) {		$theme = wp_get_theme();		if ( $theme->errors() ) {			wp_die( $theme->errors() );		}	}	return;}
 |