If you are a theme designer, or just enjoy customizing your existing WordPress theme, it can sometimes be a hassle digging around for the WordPress code you need. I’ve spent a lot of time on this site collecting various snippets of code since launch and decided that it would probably be more convenient and useful to people if I was to consolidate them all into one post for easy reference.
Here are the snippets of code I’ve managed to collect. If you have any WordPress code you’d like me to add, please leave a comment below!
Display Recent Posts
Here is the code you need to display the most recent 5 posts:
<?php query_posts('showposts=5'); ?>
<ul>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile;?>
</ul>
Display Recently Updated Posts/Pages
<?php
$today = current_time('mysql', 1);
$howMany = 5; //Number of posts you want to display
if ( $recentposts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'publish' AND post_modified_gmt < '$today' ORDER BY post_modified_gmt DESC LIMIT $howMany")):
?>
<h2><?php _e("Recent Updates"); ?></h2>
<ul>
<?php
foreach ($recentposts as $post) {
if ($post->post_title == '') $post->post_title = sprintf(__('Post #%s'), $post->ID);
echo "<li><a href='".get_permalink($post->ID)."'>";
the_title();
echo '</a></li>';
}
?>
</ul>
<?php endif; ?>
Display Recent Comments
<?php
global $wpdb;
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID,
comment_post_ID, comment_author, comment_date_gmt, comment_approved,
comment_type,comment_author_url,
SUBSTRING(comment_content,1,30) AS com_excerpt
FROM $wpdb->comments
LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =
$wpdb->posts.ID)
WHERE comment_approved = '1' AND comment_type = '' AND
post_password = ''
ORDER BY comment_date_gmt DESC
LIMIT 10";
$comments = $wpdb->get_results($sql);
$output = $pre_HTML;
$output .= "\n<ul>";
foreach ($comments as $comment) {
$output .= "\n<li>".strip_tags($comment->comment_author)
.":" . "<a href=\"" . get_permalink($comment->ID) .
"#comment-" . $comment->comment_ID . "\" title=\"on " .
$comment->post_title . "\">" . strip_tags($comment->com_excerpt)
."</a></li>";
}
$output .= "\n</ul>";
$output .= $post_HTML;
echo $output;?>
Display Top Comments
<?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 10");
foreach ($result as $topten) {
$postid = $topten->ID;
$title = $topten->post_title;
$commentcount = $topten->comment_count;
if ($commentcount != 0) { ?>
<li><a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>"><?php echo $title ?></a></li>
<?php } } ?>
Display Categories
<h2>Categories</h2>
<ul>
<?php wp_list_cats('sort_column=name'); ?>
</ul>
Display Categories in Drop-Down Box
<form action="<?php bloginfo('url'); ?>/" method="get">
<?php
$select = wp_dropdown_categories('show_option_none=Select category&show_count=1&orderby=name&echo=0');
$select = preg_replace("#<select([^>]*)>#”, “<select$1 onchange=’return this.form.submit()’>”, $select); echo $select; ?>
<noscript><input type=”submit” value=”View” /></noscript>
</form>
Display Archives
<h2>Archives</h2>
<ul>
<?php wp_get_archives('type=monthly'); ?>
</ul>
Display Archives in a Drop-Down Box
<select name=\"archive-dropdown\" onChange='document.location.href=this.options[this.selectedIndex].value;’>
<option value=\”\”><?php echo attribute_escape(__(’Select Month’)); ?></option>
<?php wp_get_archives(’type=monthly&format=option&show_post_count=1′); ?> </select>
Display a Pages Menu in your Sidebar
<h2>Pages</h2>
<ul>
<?php wp_list_pages('title_li='); ?>
</ul>
Display Gravatars (WordPress 2.5+ Only)
<?php if(function_exists(’get_avatar’)){ echo get_avatar($comment, ‘50?);} ?>
Display Blogroll Links
<ul>
<?php get_links_list(); ?>
</ul>
Display Admin Section
<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<li><a href="http://www.wordpress.org/">WordPress</a></li>
<?php wp_meta(); ?>
<li><a href="http://validator.w3.org/check?uri=referer">XHTML</a></li>
</ul>
Display a Pages SubMenu in your Sidebar
This will display any subpages in your blog’s sidebar:
<?php$children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');if ($children) { ?><ul> <?php echo $children; ?>
</ul>
<?php } ?>
Display WordPress Tags
<?php the_tags(); ?>
Display WordPress Tags Cloud
<?php wp_tag_cloud('smallest=8&largest=36&'); ?>
Template Name
This allows you to use the WordPress page template to customize how a page is displayed:
<?php /* Template Name: Portfolio */ ?>
Dynamic Title Tags
<title><?phpif (is_home()) { echo bloginfo('name');
} elseif (is_404()) {
echo '404 Not Found';
} elseif (is_category()) {
echo 'Category:'; wp_title('');
} elseif (is_search()) {
echo 'Search Results';
} elseif ( is_day() || is_month() || is_year() ) {
echo 'Archives:'; wp_title('');
} else {
echo wp_title('');
}
?></title>
Display PHP on a Single Page
Allows you to display plugins and such on a single page (replace home with the page you want it to only appear on):
<?php if ( is_home() ) { include ('file.php'); } ?>
Display an External RSS Feed
<?php include_once(ABSPATH.WPINC.'/rss.php');
wp_rss('http://wpforums.com/external.php?type=RSS2', 5); ?>
Display Most Recent Twitter Entry
<?php
// Your twitter username.
$username = "TwitterUsername";
// Prefix - some text you want displayed before your latest tweet.
// (HTML is OK, but be sure to escape quotes with backslashes: for example href=\"link.html\")
$prefix = "";
// Suffix - some text you want display after your latest tweet. (Same rules as the prefix.)
$suffix = "";
$feed = "http://search.twitter.com/search.atom?q=from:" . $username . "&rpp=1";
function parse_feed($feed) {
$stepOne = explode("<content type=\"html\">", $feed);
$stepTwo = explode("</content>", $stepOne[1]);
$tweet = $stepTwo[0];
$tweet = str_replace(”<”, “<”, $tweet);
$tweet = str_replace(”>”, “>”, $tweet);
return $tweet;
}
$twitterFeed = file_get_contents($feed);
echo stripslashes($prefix) . parse_feed($twitterFeed) . stripslashes($suffix);
?>
I’m expecting this list to grow over time as I come across more useful WordPress code and update the post.



Thursday, November 22nd, 2007 at 2:35 pm
It’s nice to see it broken down like this. Thanks. This will no doubt come in handy for quite a few people. Great post.
Tuesday, December 11th, 2007 at 12:25 pm
Very useful!!
I was looking for something like this.
Are there any other website with a running list of codes for wordpress ??
Thanks,
z
Tuesday, December 11th, 2007 at 3:31 pm
Wow, look at that list. I am a former Blogger user, and being a bit more of a php developer myself I must say that I have found Word Press appealing simply because it uses php instead of some proprietary template format.
Tuesday, December 18th, 2007 at 11:05 am
thanks! this is helpful.
Wednesday, January 9th, 2008 at 3:37 am
There we go, and I was thinking it was going to be harder than I imagined to edit my sidebars and add these types of lists.
Thanks!
Monday, March 17th, 2008 at 2:23 am
hackwordpress:
Can anyone help me? the WP forums seem to be not-so-good for essential help.
I’ve downloaded and installed wordpress 4 times to my site. After importing my files from my blogger site, our new site experienced the following: 1-wiped out our ability to post; 2-lost our categories; and 3-lost our ability to manage posts.
I’m not looking forward to a 5th install and download.
Anyone know why this is happening? I’ve spent all weekend working on this, to no avail.
thanks,
mondo
Sunday, April 6th, 2008 at 11:47 am
whats the code for recent comments?
Sunday, April 6th, 2008 at 2:27 pm
F:
Well, I’m sorry. What do you mean by the code for the recent comments? it’s straight out of WordPress 2.3.3, whatever that is.
Although I put in HaloScan a few days ago.
But I’m not taking the chance of losing the whole thing again. It’s set us back about 3 weeks in getting our stories from our old blog over to the new site. We’re just cutting and pasting all the old stories. A slow process, to be sure, but at least it’s not going to screw things up.
Sunday, April 6th, 2008 at 2:27 pm
F: thank you, by the way.
Thursday, April 17th, 2008 at 12:40 am
Thanks mate, this page neatly summarizes all the things I have been scouring the WordPress documentation for.
Cheers
Monday, May 12th, 2008 at 5:32 am
I was googling for a hack which let me include a file only when a visitor accesses my website directly (typing the URL in his browser) or from another website/search engine.
Do you have any idea to reproduce this behaviour ?
Thursday, May 15th, 2008 at 11:04 pm
The sidebars on the Prosense template won’t display on a “single post” with the Word Press 2.5 upgrade. The creator of the template hasn’t responded with a fix. Is there a way to fix/hack this?
Tuesday, June 10th, 2008 at 2:19 pm
Hi. “Display Recent Comments” is yours code and can I use this code in my theme which I making? Else who is the owner?
Wednesday, June 18th, 2008 at 10:05 am
thanx for that
ive been looking for a good code source for a while
Wednesday, June 25th, 2008 at 4:40 pm
This is what I’ve been looking for a while… Great resource… Thanks!
Sunday, June 29th, 2008 at 3:49 pm
Amazing resource that I’ve just bookmarked for when I edit/build some themes.
Monday, August 11th, 2008 at 3:24 pm
thanks for the codes, makes life simple. please don’t forget to update, I’m sure many more will find this list useful.
Monday, September 1st, 2008 at 8:48 am
whats the code for display “category ID” ?
I want display the category ID of post on singel page.
Thanks
Saturday, September 6th, 2008 at 12:16 am
Very useful post!!
thanks alot
Tuesday, September 16th, 2008 at 1:03 am
That’s great,I’m looking it for a long time,thank you and smashing magazine.
Friday, September 19th, 2008 at 7:16 am
Is there any way to display tags in my metatags
something like
<meta name=”keywords” content=”" />
Title worked well for me and also wanted tags to work.
Saturday, September 20th, 2008 at 3:36 pm
RE: Displaying recent posts…
I have the index of my blog set to display the two most recent posts. Is there a way to alter the recent posts code below so that it offsets by two posts (posts 3 - 7 display)?
On my own site, I always wonder why I’m listing the top two most recent posts when they are staring my visitors in the face - lol.
Thanks in advance - great list!
Saturday, September 20th, 2008 at 10:43 pm
very useful collections.
good job
Sunday, September 21st, 2008 at 8:41 am
I recently asked about the way to dynamize my metatag keyword with the tags used on post. Can you help me solve this problem?
i used
<meta name=”title” content=”" />and that worked well and want the same in keywords
<meta name=”keywords” content=”" />but got some sort of error.
Hope you solve my problem as soon as possible.
Monday, September 22nd, 2008 at 10:54 am
Thanks man, this is really useful. You’ve just made wordpress seem that little bit easier to crack
Tuesday, September 23rd, 2008 at 9:08 pm
Found these tips really helpful! Thanks for posting this, I’m sure I’ll come back often to cut-n-paste this code..
Saturday, September 27th, 2008 at 5:37 pm
thank u for your resource, i really helped with it
Sunday, November 2nd, 2008 at 2:41 am
Great info and tutorial, i like it
byme
Monday, November 17th, 2008 at 12:27 pm
Thanks…
Wednesday, November 19th, 2008 at 12:13 am
Thanks for all the codes provided.
Is there a code to displays a “category name and the number of post in that category”?
Monday, December 1st, 2008 at 2:27 pm
This is a customisable links (blogroll) menu that you can just pop into your code wherever.
<?php wp_list_bookmarks(’categorize=1&before=&title_before=&title_after=&category_before=&category_before=&after=&orderby=url’); ?>
Thursday, December 4th, 2008 at 2:50 am
great post.
i always need it
Friday, December 12th, 2008 at 9:32 am
Great list.Can you also add popular posts and related posts code so that I can use without any plugin.
Friday, December 12th, 2008 at 11:10 am
Very useful. Nice compilation.
Thursday, December 18th, 2008 at 4:40 pm
Hello,
I would like to provide login and registration links to my blogs home page. Is there any way to complete my requirement?
Thanks,
Sandeep Gandhi.
Tuesday, December 30th, 2008 at 5:21 am
Thanks so much for compiling this list - it was just what I needed today and I’ve bookmarked it at delicious so I can find it next time I need a code snippet!
Saturday, January 3rd, 2009 at 1:47 am
Regarding: “Display Most Recent Twitter Entry” Do you have a way to cache the value or limit the amount of times per hour it request the RSS? Twitter limits 100 request per hour on a user RSS feed.
Tuesday, January 6th, 2009 at 5:10 am
Wow..this is really a great badass WP compilation! and the site is worthed to name as WP resources center. Thanks, buddy. Kudos!
Tuesday, January 6th, 2009 at 10:48 am
thanks for the post but there are plugins that does that which is easier to install.
Tuesday, January 6th, 2009 at 7:28 pm
great list!!!
Saturday, January 10th, 2009 at 10:22 pm
Dear friends Display Categories This function has been deprecated. That means it has been replaced by a new function or is no longer supported, and may be removed from future versions.
Replace with:
http://codex.wordpress.org/Template_Tags/wp_list_categories
Thanks!
Sunday, January 11th, 2009 at 2:22 am
Hi, this is great post. Unfortunately I didn’t find the code I need.
I what to be able to display all entries of a particular category in a drop-down box on my sidebar. The entries must be displayed alphabetical order. Is this possible? If it is, can someone help me out by providing the code..
Thanks
Wednesday, January 14th, 2009 at 4:27 am
Why I cannot add more Wigets on ygo-greenary-10 theme? Please help me???
Wednesday, January 14th, 2009 at 1:35 pm
Thanks! This will come in useful when I delete something that I’m not supposed to
Tuesday, January 27th, 2009 at 5:13 pm
Thanks for putting this together.
Monday, March 2nd, 2009 at 8:36 am
It is really good stuff.
Saturday, March 14th, 2009 at 11:30 pm
good post, was helpful for me.
Tuesday, April 7th, 2009 at 11:48 am
God bless you for this!
Thursday, April 30th, 2009 at 2:57 am
thanks for the post but there are plugins that does that which is easier to install
Tuesday, May 12th, 2009 at 11:41 am
thx for post. it was so useful 4 me
Wednesday, May 13th, 2009 at 1:41 am
Just what I was looking for… Thank you!
Sunday, June 28th, 2009 at 1:32 pm
This is great.. I was able to use some of them on my error 404 Page.. Great stuff.. thanks.. visit my error page
http://www.revolutioners.com/error
Thursday, July 2nd, 2009 at 9:01 am
wow this is great, just what i needed for my site! thanks!
Trackbacks/Pingbacks
Leave A Comment
Become one of our
Featured Sites
Recent Trackbacks
Contributing Authors
Archives
Extras
WordPress Hacks Copyright © 2007-2009 | An Apricot Media Website
Template by StudioPress | Custom Design by Kyle Eslick and Blog Design Studio
RSS Feed Email RSS