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!
Tweet This | Digg This | Stumble it | Add to Del.icio.us | | Print This

Kyle Eslick

Kyle Eslick is WordPress enthusiast who took his passion for WordPress to the next level back in 2007 by launching WPHacks.com as a place to share hacks and review WordPress-related products. You can learn more about him by following his personal tweets here.

There Are 66 Responses So Far »

  1. 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. zeerebel says:

    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. 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. thanks! this is helpful.

  5. Roman says:

    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. mondoreb says:

    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. F says:

    whats the code for recent comments?

    • Gokul says:

      This is the query to get recent comments , try this.

      $sql = “SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,
      SUBSTRING(comment_content,1,$src_length) 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 $src_count”;
      $comments = $wpdb->get_results($sql);

      foreach ($comments as $comment) {
      $output.=”ID).”#comment-”. $comment->comment_ID.”‘>”. $comment->comment_author.” on “.$comment->post_title.”“;
      }
      echo $output;

  8. Mondoreb says:

    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. Mondoreb says:

    F: thank you, by the way.

  10. Laurence says:

    Thanks mate, this page neatly summarizes all the things I have been scouring the WordPress documentation for.

    Cheers

  11. Matthew says:

    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. Lynne Green says:

    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. M says:

    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. james says:

    thanx for that

    ive been looking for a good code source for a while

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

  16. Andy says:

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

  17. Ido Fishman says:

    thanks for the codes, makes life simple. please don’t forget to update, I’m sure many more will find this list useful.

  18. y5cafe says:

    whats the code for display “category ID” ?
    I want display the category ID of post on singel page.

    Thanks

  19. ARS says:

    Very useful post!!

    thanks alot ;)

  20. David Lau says:

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

  21. Upadesh says:

    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. Phil Parr says:

    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. Tristan says:

    very useful collections.

    good job

  24. Upadesh says:

    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. Shark SEO says:

    Thanks man, this is really useful. You’ve just made wordpress seem that little bit easier to crack

  26. AskApache says:

    Found these tips really helpful! Thanks for posting this, I’m sure I’ll come back often to cut-n-paste this code..

  27. minanube says:

    thank u for your resource, i really helped with it

  28. byme says:

    Great info and tutorial, i like it
    byme

  29. Mich says:

    Thanks for all the codes provided.

    Is there a code to displays a “category name and the number of post in that category”?

  30. 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’); ?>

  31. Rizal says:

    great post.
    i always need it

  32. Windows Guy says:

    Great list.Can you also add popular posts and related posts code so that I can use without any plugin.

  33. Vijay says:

    Very useful. Nice compilation.

  34. Sandeep says:

    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.

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

  36. Zeke Franco says:

    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.

  37. partoba says:

    Wow..this is really a great badass WP compilation! and the site is worthed to name as WP resources center. Thanks, buddy. Kudos!

  38. izumou says:

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

  39. vicmx says:

    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!

  40. Efrain says:

    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

  41. seng reansey says:

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

  42. Dean Perry says:

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

  43. Jamiel Sharief says:

    Thanks for putting this together.

  44. Zainuddin says:

    It is really good stuff.

  45. good post, was helpful for me.

  46. Orel says:

    God bless you for this!

  47. Bambangxp says:

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

  48. ya?arzade says:

    thx for post. it was so useful 4 me

  49. Just what I was looking for… Thank you!

  50. kuld33p says:

    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

  51. Mike Wagan says:

    wow this is great, just what i needed for my site! thanks!

  52. webinky.com says:

    Thanks for the resources very useful. Surely I will use some of them in my new blog

  53. Hello and thanks for these cool wp codes, but actually i was looking for something like displaying the contents of a particular category. If you have anything like that please do email it to me.

    thanks… n cheers.

  54. Jimmy says:

    Thanks for the great post. I used some of the code on my website and it works a treat!

    Keep up the good work!

  55. this saved me lot of time…

    thank you for sharing this…

  56. Blogsolute says:

    Helped me a lot customizing my theme. Thanks

  57. Guy says:

    I want to insert a png file with my logo where the header is. Is there a simple way to do this? Also, I want to post a podcast – how is this done.

    I have thesis… and I wish that there was a button inside that you could simply click, upload your image and there was your own logo. The RV builder in cpanel will let you, but wordpress and/or thesis won’t. I am not a programmer, just want it to work.

    I am frustrated. I look forward to your reply.

  58. Excelent! I will bookmark this post and use it whenever I need It! Thx!

  59. rachiegirl says:

    very new to WP.
    i want to use “Display an External RSS Feed” on a page, but the php doesn’t process. The page just displays actual code. what am I doing wrong?

    here is the page: http://webmztriss.com/?page_id=363

    please help a newbie. :)

  60. Rick says:

    Just discovered this invaluable resource. Thank you very much!

  61. Calliarc says:

    Thank you for you valuable codes

  62. jurug says:

    great tutorial… I have bookmarks this tutorials

    thanks

  63. agnes says:

    hi i am having problem with wp comments in my blog.

    i can write and then in the wordpress user panel approve and view any comments made, but they cannot be displayed in the post, what is the problem?

Trackbacks/Pingbacks »

Tweetbacks »

Leave a Reply