示例#1
0
function my_template_redirect()
{
    global $wp, $ocmx_post_types;
    $wp->query_vars["post_type"] = "";
    $ocmx_post_types = array();
    $ocmx_post_types[] = "quote";
    $ocmx_post_types[] = "info-box";
    $ocmx_post_types[] = "portfolio";
    if (in_array($wp->query_vars["post_type"], $ocmx_post_types)) {
        if (is_robots()) {
            do_action('do_robots');
            return;
        } elseif (is_feed()) {
            do_feed();
            return;
        } elseif (is_trackback()) {
            include ABSPATH . 'wp-trackback.php';
            return;
        } elseif ($wp->query_vars["name"]) {
            include TEMPLATEPATH . "/single-" . $wp->query_vars["post_type"] . ".php";
            die;
        } else {
            include TEMPLATEPATH . "/" . $wp->query_vars["post_type"] . ".php";
            die;
        }
    }
}
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
} 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;
            }
        }
    }
}
示例#3
0
 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;
     }
 }
 /**
  * Simulate accessing a revision log feed
  * @param string $url the URL to try
  * @return string the content returned
  */
 function simulate_feed($url = null)
 {
     if (!$url) {
         return;
     }
     global $wpdr;
     flush_rewrite_rules();
     $this->go_to($url);
     ob_start();
     $wpdr->revision_feed_auth();
     if (!$this->is_wp_die()) {
         do_feed();
     }
     $content = ob_get_contents();
     ob_end_clean();
     return $content;
 }
示例#5
0
 function mf_change_template()
 {
     global $post;
     // Check global post
     if (empty($post)) {
         return;
     }
     // Process feeds and trackbacks even if not using themes.
     if (is_robots()) {
         do_action('do_robots');
         return;
     } elseif (is_feed()) {
         do_feed();
         return;
     } elseif (is_trackback()) {
         include ABSPATH . 'wp-trackback.php';
         return;
     }
     // Check if the post has a special template
     $template = get_post_meta($post->ID, '_wp_mf_page_template', true);
     if (!$template || $template == 'default') {
         return;
     }
     $template = TEMPLATEPATH . '/' . $template;
     if ($template = apply_filters('template_include', $template)) {
         include $template;
         die;
     }
     return;
 }
 function test_nonexistent_feeds()
 {
     global $wp_rewrite;
     $badfeed = 'badfeed';
     $this->assertNotContains($badfeed, $wp_rewrite->feeds);
     $this->go_to('/?feed=' . $badfeed);
     // This is the assertion. Once the exception is thrown in do_feed, execution stops, preventing futher assertions.
     $this->setExpectedException('WPDieException', 'ERROR: This is not a valid feed template.');
     do_feed();
 }
示例#7
0
 public static function templateRedirect()
 {
     // Process feeds and trackbacks even if not using themes.
     if (is_robots()) {
         do_action('do_robots');
         return;
     } elseif (is_feed()) {
         do_feed();
         return;
     } elseif (is_trackback()) {
         include ABSPATH . 'wp-trackback.php';
         return;
     }
     if (defined('WP_USE_THEMES') && WP_USE_THEMES) {
         $template = false;
         $templates = self::getTemplateHierarchy();
         $template = locate_template($templates, false, false);
         if ($template = apply_filters('template_include', $template)) {
             include $template;
         }
         exit;
     }
 }