Skip to main content

13 Useful Code Snippets for WordPress Development

WordPress has grown to be commonly defined as the core solution for your blogging needs. It is the most recognized and sought after Content Management System by writers and designers. Consequently, over the past few years there has been a voluble increase in WordPress blogs, this has caused the “need” for useful tips, tricks, and hacks, all made to allow the customizing of your WordPress powered site. Here are 13 code snippets or hacks that will help you extend the capabilities of your WordPress site.

Customize the Logo of Your WordPress Login Page

After constantly having to visit your WordPress login page, having to see the same logo and design over and over can be a bit boring. This is where this hack comes in handy. All you have to do is place the following in your functions.php file, and replace the image.

function my_custom_login_logo() {
    echo '';

add_action('login_head', 'my_custom_login_logo');

Detecting Mobile Devices Accessing Your Site

Mobile web surfing is continuing to evolve on a larger scale. This is why detecting those users who are visiting your WordPress blog through a mobile device and redirecting them to a mobile version of your site is important. In order to achieve this, you first have to get the code from and upload it to your theme directory.
Then, all you simply have to do is open your header.php file and place the following at the top of the file. Remember to edit line 5 to where you’d like to redirect mobile users.

$mobile = mobile_device_detect();

if ($mobile==true) {
  header( 'Location:' ) ;

Automatically Resize Images

If you’re accustomed to displaying large quantities of images on your blog, then you know how tedious it can be to have to always resize your images manually. Now you can use this hack to automatically resize any image you’d like to whatever width and height you choose for a more organized look. To do this, copy the following script and create a folder for it anywhere on your site (i.e. scripts) and name it “timthumb.php“. Now, you can use the following syntax to add an automatically resized image to your blog post:

Displaying Your Tags in a Dropdown Menu

Tag clouds are often hard to read, especially for a more busy site. Eliminate this problem by using a dropdown menu to display your tags. You must place the following code in your functions.php file.

 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45,
  'format' => 'flat', 'orderby' => 'name', 'order' => 'ASC',
  'exclude' => '', 'include' => ''
 $args = wp_parse_args( $args, $defaults );

 $tags = get_tags( array_merge($args, array('orderby' => 'count', 'order' => 'DESC')) ); // Always query top tags

 if ( empty($tags) )

 $return = dropdown_generate_tag_cloud( $tags, $args ); // Here's where those top tags get sorted according to $args
 if ( is_wp_error( $return ) )
  return false;
  echo apply_filters( 'dropdown_tag_cloud', $return, $args );

function dropdown_generate_tag_cloud( $tags, $args = '' ) {
 global $wp_rewrite;
 $defaults = array(
  'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45,
  'format' => 'flat', 'orderby' => 'name', 'order' => 'ASC'
 $args = wp_parse_args( $args, $defaults );

 if ( !$tags )
 $counts = $tag_links = array();
 foreach ( (array) $tags as $tag ) {
  $counts[$tag->name] = $tag->count;
  $tag_links[$tag->name] = get_tag_link( $tag->term_id );
  if ( is_wp_error( $tag_links[$tag->name] ) )
   return $tag_links[$tag->name];
  $tag_ids[$tag->name] = $tag->term_id;

 $min_count = min($counts);
 $spread = max($counts) - $min_count;
 if ( $spread <= 0 )
  $spread = 1;
 $font_spread = $largest - $smallest;
 if ( $font_spread <= 0 )
  $font_spread = 1;
 $font_step = $font_spread / $spread;

 // SQL cannot save you; this is a second (potentially different) sort on a subset of data.
 if ( 'name' == $orderby )
  uksort($counts, 'strnatcasecmp');

 if ( 'DESC' == $order )
  $counts = array_reverse( $counts, true );

 $a = array();

 $rel = ( is_object($wp_rewrite) && $wp_rewrite->using_permalinks() ) ? ' rel="tag"' : '';

 foreach ( $counts as $tag => $count ) {
  $tag_id = $tag_ids[$tag];
  $tag_link = clean_url($tag_links[$tag]);
  $tag = str_replace(' ', ' ', wp_specialchars( $tag ));
  $a[] = "\t$tag ($count)";

 switch ( $format ) :
 case 'array' :
  $return =& $a;
 case 'list' :
  $return = "
  • "; $return .= join("
  • \n\t
  • ", $a); $return .= "
  • \n
\n"; break; default : $return = join("\n", $a); break; endswitch; return apply_filters( 'dropdown_generate_tag_cloud', $return, $tags, $args ); } ?>
Now, to finalize your dropdown menu you have to open the theme file where you want the list to be displayed (i.e. sidebar.php) and insert the following code:

Custom “Read More” Links for Your Posts

This is a really useful hack if you want to better define or customize the look of your “Read More” links for posts. The first thing you have to do is to edit your posts and create custom fields. Give them custom_more as a key, and whatever text you want to be displayed as the value. Then you have to edit your index.php file (and also your category.php, search.php, etc) and find a line similar to this:

the_content("
Now just replace it with this code:

ID, 'custom_more', true); ?>

Scheduling Posts for RSS

If you regularly publish articles and you care about the quality of your posts then this is a good hack for you. The main purpose of this hack is that it lets you schedule your posts to be viewed in your RSS at a later time, this will allow you enough time to get those last minute fixes and additions in before your post is forever published in your feed. Place the following code in your .htaccess file. In order to change the length of the delay, change the value of the $waitvariable on line 9.

function publish_later_on_feed($where) {
 global $wpdb;

 if ( is_feed() ) {
  // timestamp in WP-format
  $now = gmdate('Y-m-d H:i:s');

  // value for wait; + device
  $wait = '5'; // integer


  // add SQL-sytax to default $where
  $where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
 return $where;

add_filter('posts_where', 'publish_later_on_feed');

Display the Most Commented Posts of 2009

As the New Year is about to role in, it would be fun and resourceful to let your readers know which of your posts were most popular in the past year. This hack will allow your visitors to view the top 10 most commented/popular posts of 2009. This is a great way to give your posts a second shot at being noticed. In order to do this, you’ll need to place the following code on your sidebar.php file, or wherever else you’d like on your theme:

    get_results("SELECT comment_count,ID,post_title, post_date FROM $wpdb->posts WHERE post_date BETWEEN '2009-01-01' AND '2009-12-31' 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) { ?>

Allow Only Your IP Address to Access the wp-admin Directory

If you don’t have multiple writers or contributors to your blog, then realistically speaking only you should be allowed to visit the wp-admin directory. Especially since a great deal of security risks entail the wp-admin directory. All you have to do is enter your static IP adress on line 8. You can add more IPs if needed, by creating a new line. Place the following in your .htaccess file.

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Example Access Control"
AuthType Basic

order deny,allow
deny from all
allow from xx.xx.xx.xx

Styling Your WordPress Comments

When your blog has lots of comments, then it’s a great way to get visitors to interact more by styling the way your comments are displayed. If this is what you’re looking to to, then open your comments.php file and replace your comments loop with the following code:

    user_id; $role = ( isset( $roles[$user_id] ) ? $roles[$user_id] : '' ); ?>
  1. By -
Now to structure your comment you’ll need to open your style.css file and place the following code:

#commentlist li { border:2px solid white; } /* not logged or subscriber */
#commentlist li.administrator { border:2px solid red } /* blog admin */
#commentlist li.editor { border:2px solid blue } /* editor */

Remove Widget Areas on Your Homepage

If your WordPress powered site is more than just a blog, then you probably want to get rid of the widget areas in your default sidebar and create your own. This hack doesn’t require any editing, just code insertion. Now, all you need to do is add the following to your functions.php file:

Insert Author Bio for Each Post

A multi-writer blog usually means everyone who writes or contributes a post will have section that speaks about them. If your blog doesn’t have this feature, then start giving your authors proper credit by inserting the following code into your functions.php file. An author bio will be automatically be displayed at the end of every post.

function get_author_bio ($content=''){
    global $post;

\n"; $html.="\n"; $html.="
\n"; $html.="

Author: ".$post_author_name."

\n"; $html.= $post_author_description."\n"; $html.="
\n"; $html.="
\n"; $content .= $html; } return $content; } add_filter('the_content', 'get_author_bio');

Remove Certain Categories From Being Displayed

Place this code inside The Loop and whichever category you choose, it will not be displayed. This can be an interesting hack for those who only wish to display a certain category to chosen or registered users.

Redirect Your WordPress Feed to FeedBurner

If you’ve found out how useful FeedBurner really is after you’ve set-up your WordPress site, and you have a few RSS subscribers on your default WordPress feed, then you’ll need to redirect your feed to FeedBurner. Every time a user follows a link to your default feed (i.e. they will be redirected to the location of your FeedBurner feed ( i.e. This way, even if a user manages to somehow subscribe to your old RSS feed, they will always be redirected to your new feed. Place the following code in your .htaccess file.

# temp redirect wordpress content feeds to feedburner

 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC]
 RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
 RewriteRule ^feed/?([_0-9a-z-]+)?/?$ [R=302,NC,L]


Popular posts from this blog

Top 5 Women Who Impacted Technology in 2010

Katie Stanton, International Strategist for Twitter Katie Stanton has impressively long names of companies in her resume. They include the White House, Google Inc, and her latest addition is Twitter. Her remit is working on Twitter’s international strategy and her experience in social media will be a key asset to the company. Katie has a history of working in technology, and her knowledge of departmental laws will help Twitter work alongside government agencies, as she’ll be spearheading the free information approach, especially after the Wikileaks incident. Stanton has been a key player in the techsphere for some time, and this extends to her private life. Following the Haiti disaster she worked with a group of engineers to create a free texting service to help those in need and she is constantly in demand as an expert in both social media and government policy.
Caterina Fake, Co-Founder of Flickr and Hunch Despite having a surname which sounds like a pseudonym for a spy (it’…

AT&T MiFi 2372 review

In the week or so that I have been testing the AT&T MiFi 2372 by Novatel Wireless, it has already saved no less than three lives. First, it saved my cable guy’s life. You see, Time Warner Cable provides the worst home Internet service I have ever experienced. I can’t even think of a close second. If providing terrible home Internet service was a sport, Time Warner Cable would be on its tenth consecutive undefeated season. Forget the fact that my upload speed is capped at 60Kbps and I’m lucky if I can get half that — it has been months since I’ve gone through a full day without at least one service interruption. Months. Unfortunately, Time Warner Cable has an exclusive contract with my building so I have no choice but to endure its abysmal service. Last week, as a Time Warner Cable technician entered my home for the sixth time in two months, I realized that this certainly would have spelled serious trouble had it not been for my trusty new back up device. Before the Mi…

Evolution Of Computer Virus [infographic]