On search and archive pages there isn’t a specific archive_<post_type>.php  yet so you have to edit your current archive and search to compensate for it being used for custom post types and taxonomies. On a good note, there is the $wp_query->query_vars that we can work with. (if) there is a custom post type taxonomy being set it will be in those variables.    Now here’s the interesting part.    If we check for the is_category() and is_tag() ahead of the check for the query_var checks it will weed out the normal post post_type from the ones in custom post types.

<br />
&lt;?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?&gt;<br />
&lt;?php /* Category Archive */ if (is_category()) { ?&gt;<br />
	&lt;h2 class=&quot;pagetitle&quot;&gt;&lt;?php _e('Archive for &#8216;','comicpress'); ?&gt;&lt;?php single_cat_title() ?&gt;&#8217;&lt;/h2&gt;<br />
&lt;?php /* Tag Archive */ } elseif( is_tag() ) { ?&gt;<br />
	&lt;h2 class=&quot;pagetitle&quot;&gt;&lt;?php _e('Posts Tagged &#8216;','comicpress'); ?&gt;&lt;?php single_tag_title() ?&gt;&#8217;&lt;/h2&gt;<br />
&lt;?php /* Daily Archive */ } elseif (is_day()) { ?&gt;<br />
	&lt;h2 class=&quot;pagetitle&quot;&gt;&lt;?php _e('Archive for','comicpress'); ?&gt; &lt;?php the_time('F jS, Y') ?&gt;&lt;/h2&gt;<br />
&lt;?php /* Monthly Archive */ } elseif (is_month()) { ?&gt;<br />
	&lt;h2 class=&quot;pagetitle&quot;&gt;&lt;?php _e('Archive for','comicpress'); ?&gt; &lt;?php the_time('F, Y') ?&gt;&lt;/h2&gt;<br />
&lt;?php /* Yearly Archive */ } elseif (is_year()) { ?&gt;<br />
	&lt;h2 class=&quot;pagetitle&quot;&gt;&lt;?php _e('Archive for','comicpress'); ?&gt; &lt;?php the_time('Y') ?&gt;&lt;/h2&gt;<br />
&lt;?php /* Author Archive */ } elseif (is_author()) { ?&gt;<br />
	&lt;h2 class=&quot;pagetitle&quot;&gt;&lt;?php _e('Author Archive','comicpress'); ?&gt;&lt;/h2&gt;<br />
&lt;?php /* Paged Archive */ } elseif (isset($_GET['paged']) &amp;&amp; !empty($_GET['paged'])) { ?&gt;<br />
	&lt;h2 class=&quot;pagetitle&quot;&gt;&lt;?php _e('Archives','comicpress'); ?&gt;&lt;/h2&gt;<br />
&lt;?php /* taxonomy */ } elseif (is_taxonomy($wp_query-&gt;query_vars['taxonomy'])) {<br />
	if (is_term($wp_query-&gt;query_vars['term'])) { ?&gt;<br />
		&lt;h2 class=&quot;pagetitle&quot;&gt;&lt;?php echo $wp_query-&gt;query_vars['taxonomy']; ?&gt; - &lt;?php echo $wp_query-&gt;query_vars['term']; ?&gt;&lt;/h2&gt;<br />
	&lt;?php } else { ?&gt;<br />
		&lt;h2 class=&quot;pagetitle&quot;&gt;&lt;?php echo $wp_query-&gt;query_vars['taxonomy']; ?&gt;&lt;/h2&gt;<br />
	&lt;?php } ?&gt;<br />
&lt;?php /* Post Type */ } elseif ($post-&gt;post_type !== 'post') { ?&gt;<br />
	&lt;h2 class=&quot;pagetitle&quot;&gt;&lt;?php echo $post-&gt;post_type; ?&gt;&lt;/h2&gt;<br />
&lt;?php } ?&gt;<br />

I know this isn’t pretty and if anyone wants to rewrite it to be a little cleaner I would be grateful for that.  There also needs to be a fix for the different [pages] that occur with pagination.

– Phil