diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-01-07 13:06:14 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-01-07 13:06:14 +0100 |
| commit | 7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8 (patch) | |
| tree | f7453d7dd5cbaaab246e23810b02d3edf1e451be /srcs/wordpress/wp-includes/template-loader.php | |
| parent | c59bdcf77c50cbe89b4a93782cdd6d9e7532080e (diff) | |
| download | ft_server-7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8.tar.gz ft_server-7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8.tar.bz2 ft_server-7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8.zip | |
Added wordpress
Diffstat (limited to 'srcs/wordpress/wp-includes/template-loader.php')
| -rw-r--r-- | srcs/wordpress/wp-includes/template-loader.php | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/srcs/wordpress/wp-includes/template-loader.php b/srcs/wordpress/wp-includes/template-loader.php new file mode 100644 index 0000000..42519a2 --- /dev/null +++ b/srcs/wordpress/wp-includes/template-loader.php @@ -0,0 +1,106 @@ +<?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; +} |
