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(”&lt;”, “<”, $tweet);
$tweet = str_replace(”&gt;”, “>”, $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.

Want automatic updates? Subscribe to our RSS feed or
Get Email Updates sent directly to your inbox!
Digg This | Stumble it | Add to Del.icio.us | | Print This

There Are 99 Responses So Far. »

  1. 1 Website Design
    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.

  2. 2 zeerebel
    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

  3. 3 Criminal Background Check
    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.

  4. 4 jessica elgin
    Tuesday, December 18th, 2007 at 11:05 am

    thanks! this is helpful.

  5. 5 Roman
    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!

  6. 6 mondoreb
    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

  7. 7 F
    Sunday, April 6th, 2008 at 11:47 am

    whats the code for recent comments?

  8. 8 Mondoreb
    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.

  9. 9 Mondoreb
    Sunday, April 6th, 2008 at 2:27 pm

    F: thank you, by the way.

  10. 10 Laurence
    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

  11. 11 Matthew
    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 ?

  12. 12 Lynne Green
    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?

  13. 13 M
    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?

  14. 14 james
    Wednesday, June 18th, 2008 at 10:05 am

    thanx for that

    ive been looking for a good code source for a while

  15. 15 IndoProTech.com
    Wednesday, June 25th, 2008 at 4:40 pm

    This is what I’ve been looking for a while… Great resource… Thanks!

  16. 16 Andy
    Sunday, June 29th, 2008 at 3:49 pm

    Amazing resource that I’ve just bookmarked for when I edit/build some themes.

  17. 17 Ido Fishman
    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.

  18. 18 y5cafe
    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

  19. 19 ARS
    Saturday, September 6th, 2008 at 12:16 am

    Very useful post!!

    thanks alot ;)

  20. 20 David Lau
    Tuesday, September 16th, 2008 at 1:03 am

    That’s great,I’m looking it for a long time,thank you and smashing magazine.

  21. 21 Upadesh
    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.

  22. 22 Phil Parr
    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!

  23. 23 Tristan
    Saturday, September 20th, 2008 at 10:43 pm

    very useful collections.

    good job

  24. 24 Upadesh
    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.

  25. 25 Shark SEO
    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

  26. 26 AskApache
    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..

  27. 27 minanube
    Saturday, September 27th, 2008 at 5:37 pm

    thank u for your resource, i really helped with it

  28. 28 byme
    Sunday, November 2nd, 2008 at 2:41 am

    Great info and tutorial, i like it
    byme

  29. 29 Giannis
    Monday, November 17th, 2008 at 12:27 pm

    Thanks…

  30. 30 Mich
    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”?

  31. 31 Marcus Michaels
    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’); ?>

  32. 32 Rizal
    Thursday, December 4th, 2008 at 2:50 am

    great post.
    i always need it

  33. 33 Windows Guy
    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.

  34. 34 Vijay
    Friday, December 12th, 2008 at 11:10 am

    Very useful. Nice compilation.

  35. 35 Sandeep
    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.

  36. 36 Caitlyn Howells
    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!

  37. 37 Zeke Franco
    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.

  38. 38 partoba
    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!

  39. 39 izumou
    Tuesday, January 6th, 2009 at 10:48 am

    thanks for the post but there are plugins that does that which is easier to install.

  40. 40 eddy was here
    Tuesday, January 6th, 2009 at 7:28 pm

    great list!!!

  41. 41 vicmx
    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!

  42. 42 Efrain
    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

  43. 43 seng reansey
    Wednesday, January 14th, 2009 at 4:27 am

    Why I cannot add more Wigets on ygo-greenary-10 theme? Please help me???

  44. 44 Dean Perry
    Wednesday, January 14th, 2009 at 1:35 pm

    Thanks! This will come in useful when I delete something that I’m not supposed to ;)

  45. 45 Jamiel Sharief
    Tuesday, January 27th, 2009 at 5:13 pm

    Thanks for putting this together.

  46. 46 Zainuddin
    Monday, March 2nd, 2009 at 8:36 am

    It is really good stuff.

  47. 47 unrealwonderr
    Saturday, March 14th, 2009 at 11:30 pm

    good post, was helpful for me.

  48. 48 Orel
    Tuesday, April 7th, 2009 at 11:48 am

    God bless you for this!

  49. 49 Bambangxp
    Thursday, April 30th, 2009 at 2:57 am

    thanks for the post but there are plugins that does that which is easier to install

  50. 50 ya?arzade
    Tuesday, May 12th, 2009 at 11:41 am

    thx for post. it was so useful 4 me

  51. 51 Set Yourself Freelance
    Wednesday, May 13th, 2009 at 1:41 am

    Just what I was looking for… Thank you!

  52. 52 kuld33p
    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

  53. 53 Mike Wagan
    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