Quite recently, is_home() and is_archive() stopped working for me. I mean, that these conditional tags stopped working for me and the intended code I had was not performing as expected.
I did a bit of digging around, however I did not find any conclusive answers to what was wrong. However, I did find a solution at this forum post, and after including an additional snippet it started working fine.
If you are facing a problem with the is_home() function, you can use the wp_reset_query(); function before you use the conditional checks to fix the issue.
I am still looking into the internal code as to why this is happening, will update the post once I find an answer to this problem.
I will bookmark this post for future reference..thanks
For me its still working nice on WordPress 2.9.1… 😕
Learned wp_reset_query from MichaelH at WordPress.org forums – especially for conditional statements in sidebar.
Cheers.
The problem is likely that you are trying to use the template tags after you have run a second query and loop in your page and so you have overwritten the default query that WordPress runs for your page/post.
Basically, you have called query_posts() to fetch some extra information and now the global $wp_query object references your new query (as that is what you want so all the template tags work when you run it as a loop).
Once you have finished with this second query you need to call wp_reset_query() so as to set the $wp_query back to be the one that WordPress ran for the current post/page.
Then these template tags will reflect that query.
Note that it’s often a plugin that’s responsible. Some plugins really screw with the global wordpress variables. You’ll commonly see the effect with widgets, where installing a new, poorly-written widget plugin causes others to break.
That explains everything! 🙂
I wrote an article about this problem. pls check this link http://blog.manchumahara.com/2.....ing-in-wp/
I’ve always had that problem with those condition tags, I don’t know waht your talking about. lol
Posted 8 months ago: http://wordpress.org/support/topic/269988
I have noticed many plugin developer used query_posts which is problematic for conditional tags, Sometimes conditional tags works fine in header.php but give wrong result in footer.php and other section. So my own work or any plugin I install I always search is there any string matching query_posts and use my own technique to solve
in functions.php (in my current theme) I put a function
function php4_clone($object) {
if (version_compare(phpversion(), '5.0') < 0) {
return $object;
} else {
return @clone($object);
}
}
//end php4_clone
WordPress has a function named wp_clone() which can be used too.
…
and use this to keep backup of current default wp query and restore after custom query using query_posts
//keep backup
$temp_query = php4_clone($wp_query);
...
query_posts(....);
....
//restore
$wp_query = php4_clone($temp_query);
Many times I got bad situation for this as conditional tags were not working in many places.
guys let me know how u think about my code style.
Hi
I have the folowing code in my sidebar.php file for WordPress
` post_content;?>
post_content;?>
post_content;?>
post_content;?> `
But the conditional archive code isn’t working as you can see here:
http://www.thebreadcrumbtrail.org/archives/533
I have noted however, that my archive file is called archive.php without the ‘s’.
But, I changed it to s, and it made no difference.
Any ideas warmly welcomed!
i’m executing the same code that works fine in wp 3.05 and breaks in wp 3.1
brief
my own plugin ovewrites wp_query after wp_reset_query to get posts by their type (executed in the middle of wp_head hook )
then a custom code from functions.php checks the query at the very end of the wp_head hook (99) and it shows that the query args where changed to get posts by their type (custom type “painting” ) but it shows wp_query is_archive 1 and empty taxonomy or term …
weird,
looks like is_home but shows like is_archive
any ideas ?