After some searching I haven’t been able to find a answer to what I’m trying to archive.
I’m trying to set up an archive page with accordion panels that hide/show posts from a given year with links.
So how do I show an entire year of posts, not just a link to a year?
Example:
2012
Post Title
Next Post Title
Another Post Title
==============
2011
Post Title
Next Post Title
Another Post Title
Etc
The Simple Yearly Archive Plugin does just that.
This code will also do the trick:
<?php
// get years that have posts
$years = $wpdb->get_results( "SELECT YEAR(post_date) AS year FROM wp_posts WHERE post_type="post" AND post_status="publish" GROUP BY year DESC" );
foreach ( $years as $year ) {
// get posts for each year
$posts_this_year = $wpdb->get_results( "SELECT post_title FROM wp_posts WHERE post_type="post" AND post_status="publish" AND YEAR(post_date) = '" . $year->year . "'" );
echo '<h2>' . $year->year . '</h2><ul>';
foreach ( $posts_this_year as $post ) {
echo '<li>' . $post->post_title . '</li>';
}
echo '</ul>';
}
?>
There may be room to optimize that, but I’ve tested and it works.