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.
















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.
Very useful!!
I was looking for something like this.
Are there any other website with a running list of codes for wordpress ??
Thanks,
z
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.
thanks! this is helpful.
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!
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
whats the code for recent comments?
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;
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.
F: thank you, by the way.
Thanks mate, this page neatly summarizes all the things I have been scouring the WordPress documentation for.
Cheers
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 ?
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?
Hi. “Display Recent Comments” is yours code and can I use this code in my theme which I making? Else who is the owner?
thanx for that
ive been looking for a good code source for a while
This is what I’ve been looking for a while… Great resource… Thanks!
Amazing resource that I’ve just bookmarked for when I edit/build some themes.
thanks for the codes, makes life simple. please don’t forget to update, I’m sure many more will find this list useful.
whats the code for display “category ID” ?
I want display the category ID of post on singel page.
Thanks
Very useful post!!
thanks alot
That’s great,I’m looking it for a long time,thank you and smashing magazine.
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.
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!
very useful collections.
good job
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.
Thanks man, this is really useful. You’ve just made wordpress seem that little bit easier to crack
Found these tips really helpful! Thanks for posting this, I’m sure I’ll come back often to cut-n-paste this code..
thank u for your resource, i really helped with it
Great info and tutorial, i like it
byme
Thanks…
Thanks for all the codes provided.
Is there a code to displays a “category name and the number of post in that category”?
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’); ?>
great post.
i always need it
Great list.Can you also add popular posts and related posts code so that I can use without any plugin.
Very useful. Nice compilation.
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.
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!
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.
Wow..this is really a great badass WP compilation! and the site is worthed to name as WP resources center. Thanks, buddy. Kudos!
thanks for the post but there are plugins that does that which is easier to install.
great list!!!
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!
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
Why I cannot add more Wigets on ygo-greenary-10 theme? Please help me???
Thanks! This will come in useful when I delete something that I’m not supposed to
Thanks for putting this together.
It is really good stuff.
good post, was helpful for me.
God bless you for this!
thanks for the post but there are plugins that does that which is easier to install
thx for post. it was so useful 4 me
Just what I was looking for… Thank you!
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
wow this is great, just what i needed for my site! thanks!
Thanks for the resources very useful. Surely I will use some of them in my new blog
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.
Thanks for the great post. I used some of the code on my website and it works a treat!
Keep up the good work!
this saved me lot of time…
thank you for sharing this…
Helped me a lot customizing my theme. Thanks
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.
Excelent! I will bookmark this post and use it whenever I need It! Thx!
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.
Just discovered this invaluable resource. Thank you very much!
Thank you for you valuable codes
great tutorial… I have bookmarks this tutorials
thanks
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?