A plugin for adding the post date to wp_get_archives
The WordPress function wp_get_archives(’type=postbypost’) displays a lovely list of posts, but won’t show the date of each post. This plugin adds each post’s date to those ‘postbypost’ lists, like so:
Recently
- 07.02Fixed: USB drive unusable, unformattable, and reporting 0 bytes capacity
- 07.01Toolbar Page Rank of 6 and 3 one-line sitelinks
- 06.26Protecting multiple downloads using unique URLs
- 06.03Fixing the flickering in an external LCD connected to a laptop
- 05.18Tips for improving the security of your home wireless network
Usage
- Upload and activate the plugin
- Edit your theme, replacing
wp_get_archives('type=postbypost')withard_get_archives();
The function ard_get_archives(); replaces wp_get_archives('type=postbypost'), meaning you don’t need to specify type=postbypost. You can use all of the wp_get_archives() parameters except ‘type’ and ’show_post_count’ (limit, format, before, and after). In addition, there’s a new parameter: show_post_date, that you can use to hide the date, but the plugin will show the date by default.
show_post_date
(boolean) Display date of posts in an archive (1 – true) or do not (0 – false). For use with ard_get_archives(). Defaults to 1 (true).
Customizing the date
By default, the plugin displays the date as “(MM/DD/YYYY)”, but you can change this to use any standard PHP date characters by editing the plugin at the line:
$arc_date = date('m/d/Y', strtotime($arcresult->post_date)); // new
The date is wrapped in <span class="recentdate"> tags, so you can style the date independently of the link.
How does it work?
The plugin replaces the ‘postbypost’ part of the function wp_get_archives, and adds the date to $before. The relevant code is below. You can compare it to the corresponding lines in general-template.php.
} elseif ( ( 'postbypost' == $type ) || ('alpha' == $type) ) {
('alpha' == $type) ? $orderby = "post_title ASC " : $orderby = "post_date DESC ";
$arcresults = $wpdb->get_results("SELECT * FROM $wpdb->posts $join $where ORDER BY $orderby $limit");
if ( $arcresults ) {
$beforebefore = $before; // new
foreach ( $arcresults as $arcresult ) {
if ( $arcresult->post_date != '0000-00-00 00:00:00' ) {
$url = get_permalink($arcresult);
$arc_title = $arcresult->post_title;
$arc_date = date('m/d/Y', strtotime($arcresult->post_date)); // new
if ( $show_post_date ) // new
$before = $beforebefore . '<span class="recentdate">' . $arc_date . '</span>'; // new
if ( $arc_title )
$text = strip_tags(apply_filters('the_title', $arc_title));
else
$text = $arcresult->ID;
echo get_archives_link($url, $text, $format, $before, $after);
}
}
}
}
The lines ending in ‘// new’ are the only changes.
So you want the date to appear after the title? Edit the plugin to modify $after, instead:
} elseif ( ( 'postbypost' == $type ) || ('alpha' == $type) ) {
('alpha' == $type) ? $orderby = "post_title ASC " : $orderby = "post_date DESC ";
$arcresults = $wpdb->get_results("SELECT * FROM $wpdb->posts $join $where ORDER BY $orderby $limit");
if ( $arcresults ) {
$afterafter = $after; // new
foreach ( $arcresults as $arcresult ) {
if ( $arcresult->post_date != '0000-00-00 00:00:00' ) {
$url = get_permalink($arcresult);
$arc_title = $arcresult->post_title;
$arc_date = date('j F Y', strtotime($arcresult->post_date)); // new
if ( $show_post_date ) // new
$after = ' (' . $arc_date . ')' . $afterafter; // new
if ( $arc_title )
$text = strip_tags(apply_filters('the_title', $arc_title));
else
$text = $arcresult->ID;
echo get_archives_link($url, $text, $format, $before, $after);
}
}
}
}
Download
Get the files here: (Current version: 0.1 beta)















Nice plugin! One question..is it possible to exclude certain authors off the archive list? Can’t figure that out, and I want to hide certain posts from appearing on the archive page.
I did the trick on ‘recent_posts’ but I don’t want them showing up in the archives then either. Is there someone who can help me out?
Thanks!
OK this plugin seems to work great thanks. Just one question? How do i restrict the number of posts?
Sorry my bad. Should have looked a bit harder before asking that question…for anyone else, there is some defaults at the top of the plugins php code. Cheers again this plugin is very handy.
[...] nearest match to what I wanted was A plugin for adding the post date to wp_get_archives. I based my plugin on Oliver Baty’s plugin. Thanks for putting up the code to download, it was [...]
Hey thanks, nice plugin
Hey, thanks for that Plugin.
I modified it a bit so that you can set for example German month names if you set for example “d. F Y” as the date format.
Should I post you the code?
Thanks for this! Works brilliantly!
Thank you! This is a great plugin.
Worked like a charm. Thanks.
in what file can i find the “wp_get_archives()” function?
thank you & more power!
How can I make the date appear in my tab of recent posts? I replaced the wp_get_archives(); in the header and the footer. It works but when i try to replace it in the sidebar it does not work. Can you help me with this matter? Thanks!
Thanks – any plans to extend this to do a posts category too?
Want to make a menu like so from the last 5 posts –
Category \ Post Name
Category2 \ Post Name2
etc…
A great plugin. Many thanks
)
Just what I needed, thanks for sharing!