function getWpTemplate() { if (defined('WP_USE_THEMES') && WP_USE_THEMES) { $template = false; if (is_404() && ($template = get_404_template())) { } elseif (is_search() && ($template = get_search_template())) { } elseif (is_tax() && ($template = get_taxonomy_template())) { } elseif (is_front_page() && ($template = get_front_page_template())) { } elseif (is_home() && ($template = get_home_template())) { } elseif (is_attachment() && ($template = get_attachment_template())) { } elseif (is_single() && ($template = get_single_template())) { } elseif (is_page() && ($template = get_page_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_comments_popup() && ($template = get_comments_popup_template())) { } elseif (is_paged() && ($template = get_paged_template())) { } else { $template = get_index_template(); } return str_replace(ABSPATH, '', $template); } else { return null; } }
public static function archive($post_type) { wb_set('current_url', get_post_type_archive_link($post_type)); query_posts(array('post_type' => $post_type)); if (!($template = get_archive_template())) { $template = WB_PATH . '/archive.php'; } wb_link_hack(true); include $template; wb_link_hack(false); wp_reset_query(); }
/** * Copy-pasta of wp-includes/template-loader.php */ private function load_template() { do_action('template_redirect'); $template = false; if (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'); } elseif (is_single() && ($template = get_single_template())) { } elseif (is_page() && ($template = get_page_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_comments_popup() && ($template = get_comments_popup_template())) { } elseif (is_paged() && ($template = get_paged_template())) { } else { $template = get_index_template(); } /** * Filter 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)) { $template_contents = file_get_contents($template); $included_header = $included_footer = false; if (false !== stripos($template_contents, 'get_header();')) { do_action('get_header', null); locate_template('header.php', true, false); $included_header = true; } include $template; if (false !== stripos($template_contents, 'get_footer();')) { do_action('get_footer', null); locate_template('footer.php', true, false); $included_footer = true; } if ($included_header && $included_footer) { global $wp_scripts; $wp_scripts->done = array(); } } return; }
function xtreme_get_template() { global $wp; if (defined('WP_USE_THEMES') && constant('WP_USE_THEMES')) { if (is_404() && ($template = get_404_template())) { return redefine_pagenow($template); } elseif (is_search() && ($template = get_search_template())) { return redefine_pagenow($template); } elseif (is_tax() && ($template = get_taxonomy_template())) { return redefine_pagenow($template); } elseif (is_front_page() && ($template = get_front_page_template())) { return redefine_pagenow($template); } elseif (is_home() && ($template = get_home_template())) { return redefine_pagenow($template); } elseif (is_attachment() && ($template = get_attachment_template())) { return redefine_pagenow($template); } elseif (is_single() && ($template = get_single_template())) { return redefine_pagenow($template); } elseif (is_page() && ($template = get_page_template())) { return redefine_pagenow($template); } elseif (is_category() && ($template = get_category_template())) { return redefine_pagenow($template); } elseif (is_tag() && ($template = get_tag_template())) { return redefine_pagenow($template); } elseif (is_author() && ($template = get_author_template())) { return redefine_pagenow($template); } elseif (is_date() && ($template = get_date_template())) { return redefine_pagenow($template); } elseif (is_archive() && ($template = get_archive_template())) { return redefine_pagenow($template); } elseif (is_comments_popup() && ($template = get_comments_popup_template())) { return redefine_pagenow($template); } elseif (is_paged() && ($template = get_paged_template())) { return redefine_pagenow($template); } else { $template = get_index_template(); return redefine_pagenow($template); } } }
/** * Get the fork's parent post, set up a query, and load correct template. * * Duplicates the functionality of /wp-includes/template-loader.php and includes * a lot of copypasta, but that's only to ensure that it follows the same logic. * */ function choose_template() { $p = get_queried_object_id(); if (get_post_type($p) !== 'fork') { return; } $pp = get_post($p)->post_parent; $parent = get_post($pp); if ($parent->post_type == 'page') { $query = array('page_id' => $pp); } else { $query = array('p' => $pp); } $t = new WP_Query($query); $template = false; if ($t->is_404() && ($template = get_404_template())) { } elseif ($t->is_search() && ($template = get_search_template())) { } elseif ($t->is_tax() && ($template = get_taxonomy_template())) { } elseif ($t->is_front_page() && ($template = get_front_page_template())) { } elseif ($t->is_home() && ($template = get_home_template())) { } elseif ($t->is_attachment() && ($template = get_attachment_template())) { remove_filter('the_content', 'prepend_attachment'); } elseif ($t->is_single() && ($template = get_single_template())) { } elseif ($t->is_page && ($template = get_page_template())) { } elseif ($t->is_category() && ($template = get_category_template())) { } elseif ($t->is_tag() && ($template = get_tag_template())) { } elseif ($t->is_author() && ($template = get_author_template())) { } elseif ($t->is_date() && ($template = get_date_template())) { } elseif ($t->is_archive() && ($template = get_archive_template())) { } elseif ($t->is_comments_popup() && ($template = get_comments_popup_template())) { } elseif ($t->is_paged() && ($template = get_paged_template())) { } else { $template = get_index_template(); } if ($template = apply_filters('template_include', $template)) { include $template; } return; }
function check_template() { if (is_404() && ($template = get_404_template())) { $this->template = $template; } elseif (is_search() && ($template = get_search_template())) { $this->template = $template; } elseif (is_tax() && ($template = get_taxonomy_template())) { $this->template = $template; } elseif (is_home() && ($template = get_home_template())) { $this->template = $template; } elseif (is_attachment() && ($template = get_attachment_template())) { $this->template = $template; } elseif (is_single() && ($template = get_single_template())) { $this->template = $template; } elseif (is_page() && ($template = get_page_template())) { $this->template = $template; } elseif (is_category() && ($template = get_category_template())) { $this->template = $template; } elseif (is_tag() && ($template = get_tag_template())) { $this->template = $template; } elseif (is_author() && ($template = get_author_template())) { $this->template = $template; } elseif (is_date() && ($template = get_date_template())) { $this->template = $template; } elseif (is_archive() && ($template = get_archive_template())) { $this->template = $template; } elseif (is_comments_popup() && ($template = get_comments_popup_template())) { $this->template = $template; } elseif (is_paged() && ($template = get_paged_template())) { $this->template = $template; } else { $this->template = function_exists('get_index_template') ? get_index_template() : TEMPLATEPATH . "/index.php"; } $this->template = apply_filters('template_include', $this->template); // Hook into the footer so we can echo the active template add_action('wp_footer', array(&$this, 'show_template'), 100); }
include(get_single_template()); exit; } else if ( is_page() && get_page_template() ) { include(get_page_template()); exit; } else if ( is_category() && get_category_template()) { include(get_category_template()); exit; } else if ( is_author() && get_author_template() ) { include(get_author_template()); exit; } else if ( is_date() && get_date_template() ) { include(get_date_template()); exit; } else if ( is_archive() && get_archive_template() ) { include(get_archive_template()); exit; } else if ( is_comments_popup() && get_comments_popup_template() ) { include(get_comments_popup_template()); exit; } else if ( is_paged() && get_paged_template() ) { include(get_paged_template()); exit; } else if ( file_exists(TEMPLATEPATH . "/index.php") ) { include(TEMPLATEPATH . "/index.php"); exit; } } else { // Process feeds and trackbacks even if not using themes. if ( is_feed() && empty($doing_rss) ) { include(ABSPATH . '/wp-feed.php');
/** * Retrieve path of post type archive template in current or parent template. * * The template path is filterable via the dynamic {@see '$type_template'} hook, * e.g. 'archive_template'. * * @since 3.7.0 * * @see get_archive_template() * * @return string Full path to archive template file. */ function get_post_type_archive_template() { $post_type = get_query_var('post_type'); if (is_array($post_type)) { $post_type = reset($post_type); } $obj = get_post_type_object($post_type); if (!$obj->has_archive) { return ''; } return get_archive_template(); }
} 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() ) {
private function getContent() { $template = false; if (is_404() && ($template = get_404_template())) { } elseif (is_search() && ($template = get_search_template())) { } elseif (is_tax() && ($template = get_taxonomy_template())) { } elseif (is_front_page() && ($template = get_front_page_template())) { } elseif (is_home() && ($template = get_home_template())) { } elseif (is_attachment() && ($template = get_attachment_template())) { remove_filter('the_content', 'prepend_attachment'); } elseif (is_single() && ($template = get_single_template())) { } elseif (is_page() && ($template = get_page_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_comments_popup() && ($template = get_comments_popup_template())) { } elseif (is_paged() && ($template = get_paged_template())) { } else { $template = get_index_template(); } if ($template = apply_filters('template_include', $template)) { ob_start(); include $template; $contents = ob_get_contents(); ob_end_clean(); return $contents; } else { return; } }
exit; } else { if (is_category() && get_category_template()) { include get_category_template(); exit; } else { if (is_author() && get_author_template()) { include get_author_template(); exit; } else { if (is_date() && get_date_template()) { include get_date_template(); exit; } else { if (is_archive() && get_archive_template()) { include get_archive_template(); exit; } else { if (is_comments_popup() && get_comments_popup_template()) { include get_comments_popup_template(); exit; } else { if (is_paged() && get_paged_template()) { include get_paged_template(); exit; } else { if (file_exists(TEMPLATEPATH . "/index.php")) { //首页 include TEMPLATEPATH . "/index.php"; exit; }
/** * @DEPRICATED */ public function getDefaultTemplate($post) { if ($post->post_status == 'auto-draft') { return false; } $args = array('p' => $post->ID, 'post_type' => $post->post_type); if ($post->post_type == 'page') { $args = array('page_id' => $post->ID); } $template = false; if (is_404() && ($template = get_404_template())) { } elseif (is_search() && ($template = get_search_template())) { } elseif (is_tax() && ($template = get_taxonomy_template())) { } elseif (is_front_page() && ($template = get_front_page_template())) { } elseif (is_home() && ($template = get_home_template())) { } elseif (is_attachment() && ($template = get_attachment_template())) { } elseif (is_single() && ($template = get_single_template())) { } elseif (is_page() && ($template = get_page_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_comments_popup() && ($template = get_comments_popup_template())) { } elseif (is_paged() && ($template = get_paged_template())) { } else { $template = get_index_template(); } // wp_reset_query(); if ($template && is_file($template)) { $template = basename($template); } else { $template = false; } return $template; }
include $template; return; } else { if (is_category() && ($template = get_category_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")) { if (is_attachment()) { add_filter('the_content', 'prepend_attachment'); }
/** * Emits template loads to the console */ public function wps_filter_template_include($template) { if (isset($this->options['no-templates'])) { return $template; } // // Try to work out what the template is // $want_template = ''; $got_template = ''; if (is_404()) { $want_template = '404'; } elseif (is_search()) { $want_template = 'Search'; } elseif (is_tax()) { $want_template = 'Taxonomy'; } elseif (is_front_page()) { $want_template = 'Front page'; } elseif (is_home()) { $want_template = 'Home'; } elseif (is_attachment()) { $want_template = 'Attachment'; } elseif (is_single()) { $want_template = 'Single'; } elseif (is_page()) { $want_template = 'Page'; } elseif (is_category()) { $want_template = 'Category'; } elseif (is_tag()) { $want_template = 'Tag'; } elseif (is_author()) { $want_template = 'Author'; } elseif (is_date()) { $want_template = 'Date'; } elseif (is_archive()) { $want_template = 'Archive'; } elseif (is_comments_popup()) { $want_template = 'Comments popup'; } elseif (is_paged()) { $want_template = 'Paged'; } if ($template == get_404_template()) { $got_template = '404'; } elseif ($template == get_search_template()) { $got_template = 'Search'; } elseif ($template == get_taxonomy_template()) { $got_template = 'Taxonomy'; } elseif ($template == get_front_page_template()) { $got_template = 'Front page'; } elseif ($template == get_home_template()) { $got_template = 'Home'; } elseif ($template == get_attachment_template()) { $got_template = 'Attachment'; } elseif ($template == get_single_template()) { $got_template = 'Single'; } elseif ($template == get_page_template()) { $got_template = 'Page'; } elseif ($template == get_category_template()) { $got_template = 'Category'; } elseif ($template == get_tag_template()) { $got_template = 'Tag'; } elseif ($template == get_author_template()) { $got_template = 'Author'; } elseif ($template == get_date_template()) { $got_template = 'Date'; } elseif ($template == get_archive_template()) { $got_template = 'Archive'; } elseif ($template == get_comments_popup_template()) { $got_template = 'Comments popup'; } elseif ($template == get_paged_template()) { $got_template = 'Paged'; } elseif ($template == get_index_template()) { $got_template = 'Index'; } else { $got_template = 'Unknown'; } $this->message(Colours::fg('yellow') . "Template load: " . Colours::off() . "wanted {$want_template}, got {$got_template} (" . str_replace($this->options['wp-root'] . "/wp-content/", '', $template) . ")"); return $template; }
showOption(get_post_type_archive_link($archivePostType), $archivePostTypeFile, null, false, false, 'Archive ' . $archivePostType); } } $diffArchivePostType = array_diff($archivePostTypes, $archivePostTypesFromFiles); if (!empty($diffArchivePostType)) { $archiveChilds['archive-posttype'] = true; } } } } /* * Archive */ foreach ($archiveChilds as $key => $value) { if ($value) { $archiveTemplate = get_archive_template(); if (!empty($archiveTemplate)) { $archivePath = explode('/', $archiveTemplate); $archiveFile = end($archivePath); switch ($key) { case 'category': $link = get_category_link(key($diffCategory)); $entityType = 'cat'; $entityId = key($diffCategory); break; case 'tag': $link = get_tag_link(key($diffTag)); $entityType = 'tag_id'; $entityId = key($diffTag); break; case 'author':
/** * @expectedDeprecated get_themes * @expectedDeprecated get_current_theme */ function test_switch_theme() { $themes = get_themes(); // Switch to each theme in sequence. // Do it twice to make sure we switch to the first theme, even if it's our starting theme. // Do it a third time to ensure switch_theme() works with one argument. for ($i = 0; $i < 3; $i++) { foreach ($themes as $name => $theme) { // switch to this theme if ($i === 2) { switch_theme($theme['Template'], $theme['Stylesheet']); } else { switch_theme($theme['Stylesheet']); } $this->assertEquals($name, get_current_theme()); // make sure the various get_* functions return the correct values $this->assertEquals($theme['Template'], get_template()); $this->assertEquals($theme['Stylesheet'], get_stylesheet()); $root_fs = get_theme_root(); $this->assertTrue(is_dir($root_fs)); $root_uri = get_theme_root_uri(); $this->assertTrue(!empty($root_uri)); $this->assertEquals($root_fs . '/' . get_stylesheet(), get_stylesheet_directory()); $this->assertEquals($root_uri . '/' . get_stylesheet(), get_stylesheet_directory_uri()); $this->assertEquals($root_uri . '/' . get_stylesheet() . '/style.css', get_stylesheet_uri()); # $this->assertEquals($root_uri . '/' . get_stylesheet(), get_locale_stylesheet_uri()); $this->assertEquals($root_fs . '/' . get_template(), get_template_directory()); $this->assertEquals($root_uri . '/' . get_template(), get_template_directory_uri()); //get_query_template // template file that doesn't exist $this->assertEquals('', get_query_template(rand_str())); // template files that do exist //foreach ($theme['Template Files'] as $path) { //$file = basename($path, '.php'); // FIXME: untestable because get_query_template uses TEMPLATEPATH //$this->assertEquals('', get_query_template($file)); //} // these are kind of tautologies but at least exercise the code $this->assertEquals(get_404_template(), get_query_template('404')); $this->assertEquals(get_archive_template(), get_query_template('archive')); $this->assertEquals(get_author_template(), get_query_template('author')); $this->assertEquals(get_category_template(), get_query_template('category')); $this->assertEquals(get_date_template(), get_query_template('date')); $this->assertEquals(get_home_template(), get_query_template('home', array('home.php', 'index.php'))); $this->assertEquals(get_page_template(), get_query_template('page')); $this->assertEquals(get_paged_template(), get_query_template('paged')); $this->assertEquals(get_search_template(), get_query_template('search')); $this->assertEquals(get_single_template(), get_query_template('single')); $this->assertEquals(get_attachment_template(), get_query_template('attachment')); // this one doesn't behave like the others if (get_query_template('comments-popup')) { $this->assertEquals(get_comments_popup_template(), get_query_template('comments-popup')); } else { $this->assertEquals(get_comments_popup_template(), ABSPATH . 'wp-includes/theme-compat/comments-popup.php'); } $this->assertEquals(get_tag_template(), get_query_template('tag')); // nb: this probably doesn't run because WP_INSTALLING is defined $this->assertTrue(validate_current_theme()); } } }
public function templateLoad($defaultView = '') { global $posts, $post, $wp_did_header, $wp_query, $wp_rewrite, $wpdb, $wp_version, $wp, $id, $comment, $user_ID; $content = ''; /** * Loads the correct template based on the visitor's url * @package WordPress */ if (defined('WP_USE_THEMES') && WP_USE_THEMES) { do_action('template_redirect'); } /** * Filter 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 $content; } elseif (is_feed()) { do_feed(); return $content; } elseif (is_trackback()) { include ABSPATH . 'wp-trackback.php'; return $content; } if (defined('WP_USE_THEMES') && WP_USE_THEMES) { $template = false; if (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'); } elseif (is_single() && ($template = get_single_template())) { } elseif (is_page() && ($template = get_page_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_comments_popup() && ($template = get_comments_popup_template())) { } elseif (is_paged() && ($template = get_paged_template())) { } else { $template = get_index_template(); } /** * Filter 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', $this->defaultView ?: $template)) { load_template($template, false); } return $content; } }
/** * Turns taxonomies associated with comics into comic archives. * * @global object $wp_query * @param string $template * * @return void|string */ function mpp_series_template($template) { global $wp_query; if ($wp_query->is_tax) { $object = $wp_query->get_queried_object(); if (isset($object->taxonomy) && $object->taxonomy == 'mangapress_series') { if ('' == locate_template(array('comics/archives.php'), true)) { return get_archive_template(); } } else { return $template; } } else { return $template; } }
/** * Returns current template * * @return string */ function get_template() { static $template = null; if ($template === null) { switch (true) { case is_404() && ($template_file = get_404_template()): case is_search() && ($template_file = get_search_template()): case is_tax() && ($template_file = get_taxonomy_template()): case is_front_page() && function_exists('get_front_page_template') && ($template_file = get_front_page_template()): case is_home() && ($template_file = get_home_template()): case is_attachment() && ($template_file = get_attachment_template()): case is_single() && ($template_file = get_single_template()): case is_page() && ($template_file = get_page_template()): case is_category() && ($template_file = get_category_template()): case is_tag() && ($template_file = get_tag_template()): case is_author() && ($template_file = get_author_template()): case is_date() && ($template_file = get_date_template()): case is_archive() && ($template_file = get_archive_template()): case is_comments_popup() && ($template_file = get_comments_popup_template()): case is_paged() && ($template_file = get_paged_template()): break; default: if (function_exists('get_index_template')) { $template_file = get_index_template(); } else { $template_file = 'index.php'; } break; } $template = basename($template_file, '.php'); } return $template; }
/** * Returns current group * * @return string */ function get_group() { static $group = null; if ($group === null) { switch (true) { case is_404() && ($template = get_404_template()): case is_search() && ($template = get_search_template()): case is_tax() && ($template = get_taxonomy_template()): case is_home() && ($template = get_home_template()): case is_attachment() && ($template = get_attachment_template()): case is_single() && ($template = get_single_template()): case is_page() && ($template = get_page_template()): case is_category() && ($template = get_category_template()): case is_tag() && ($template = get_tag_template()): case is_author() && ($template = get_author_template()): case is_date() && ($template = get_date_template()): case is_archive() && ($template = get_archive_template()): case is_comments_popup() && ($template = get_comments_popup_template()): case is_paged() && ($template = get_paged_template()): $group = basename($template, '.php'); break; default: $group = 'default'; break; } } return $group; }