So I’m trying to do an if / else statement on an archive.php template. I setting up my archives using WP Smart archives reloaded (http://wordpress.org/extend/plugins/smart-archives-reloaded/)
The code from my archive.php is as follows:
<?php
if (in_category('166')) { include 'archive-blog.php';
}
else {
echo('foo');
}
?>
Im trying to get archive.php to include a certain template based on the category number. However this code grabs the archive blog template no matter what (even if I click on a category archive that is not the blog).
I’m wondering if I’m not doing this correctly – does in_category not work on an archive page? I have a similar set up with a single.php directing to a different include template based on the category.
Thanks!
Update
I’ve also tried to use is_category and it seems to be completely ignoring my first condition and just echoing foo for any category.
<?php
if (is_category('166')) { include 'archive-blog.php';
}
else {
echo('foo');
}
?>
Link to what I’m talking about: (go into the archives in the right sidebar)
http://www.metropoliscreative.com/talent-analytics/w/?cat=166
http://www.metropoliscreative.com/talent-analytics/w/?cat=3
also, im not using permalinks because the clients server does not have mod-rewrite
If memory serves, in_category() is for use within the loop and returns true when the current post is in that particular category.
You’re probably for is_category(166).
Alternatively you could just name your file so that WordPress knows to use it for that category. According to the Codex, WordPress looks for the following files (in this order) in order to display your categories:
So if you named/created a template file called
category-166.php
, then WordPress would use that file to display category 166.you are almost there its not in_category(‘166’) its is_category(‘166’)
the difference are:
that category.
category archive page.
is that what you’re looking for?
Try
is_category()
instead.Example. Check if in category 12 OR 13