[wp-hackers] Template Redirection

Seth Thomas Rasmussen seth at sethrasmussen.com
Tue Aug 24 17:17:34 UTC 2004


Great idea! I hope it makes it in the next release. I've wanted such a
functionality since day one.

-----Original Message-----
From: hackers-bounces at wordpress.org
[mailto:hackers-bounces at wordpress.org]On Behalf Of Ryan Boren
Sent: Tuesday, August 24, 2004 12:08 PM
To: WordPress Hackers
Subject: [wp-hackers] Template Redirection


In CVS is some experimental code which can load different templates for
different query types, all from index.php.  For example, if the query is
for a category, we check to see if wp-content/category.php exists.  If
so, we use it instead of index.php.  The same is true of authors, single
posts, dates, archives, and so forth.  If you do not provide alternative
templates in wp-content, index.php behaves the same way it ever has.

All of this redirection is done without having to change the rewrite
rules.  Everything still goes through index.php.  This should make it
much easier for those wanting to style their post pages or their search
pages or what-have-you via separate templates.  You still have the
option of styling everything through index.php, which is made easier by
the is_single(), is_category(), is_author(), is_archive(), etc.
functions.

Take a look at wp-blog-header.php in CVS and let me know what you think.
Try it out, kick the tires, provide feedback.  Excerpted below are the
relevant bits from wp-blog-header.php.  This can be expanded to other
query types.  Let me know what would be useful to you.

// Template redirection
if (is_single() && (! isset($wp_did_single)) &&
    file_exists(ABSPATH . 'wp-content/single.php')) {
  $wp_did_single = true;
  include(ABSPATH . 'wp-content/single.php');
  exit;
} else if (is_page() && (! isset($wp_did_page)) &&
	    file_exists(ABSPATH . 'wp-content/page.php')) {
  $wp_did_page = true;
  include(ABSPATH . 'wp-content/page.php');
  exit;
} else if (is_category() && (! isset($wp_did_category)) &&
	   file_exists(ABSPATH . 'wp-content/category.php')) {
  $wp_did_category = true;
  include(ABSPATH . 'wp-content/category.php');
  exit;
} else if (is_author() && (! isset($wp_did_author)) &&
	   file_exists(ABSPATH . 'wp-content/author.php')) {
  $wp_did_author = true;
  include(ABSPATH . 'wp-content/author.php');
  exit;
} else if (is_date() && (! isset($wp_did_date)) &&
	   file_exists(ABSPATH . 'wp-content/date.php')) {
  $wp_did_date = true;
  include(ABSPATH . 'wp-content/date.php');
  exit;
} else if (is_archive() && (! isset($wp_did_archive)) &&
	   file_exists(ABSPATH . 'wp-content/archive.php')) {
  $wp_did_archive = true;
  include(ABSPATH . 'wp-content/archive.php');
  exit;
} else if (is_search() && (! isset($wp_did_search)) &&
	   file_exists(ABSPATH . 'wp-content/search.php')) {
  $wp_did_search = true;
  include(ABSPATH . 'wp-content/search.php');
  exit;
} else if (is_feed() && $pagenow != 'wp-feed.php') {
  include(dirname(__FILE__) . '/wp-feed.php');
  exit;
} else if ($pagenow != 'wp-trackback.php' && $tb == 1) {
  include(dirname(__FILE__) . '/wp-trackback.php');
  exit;
}



_______________________________________________
hackers mailing list
hackers at wordpress.org
http://wordpress.org/mailman/listinfo/hackers_wordpress.org




More information about the hackers mailing list