Awesome WordPress Shortcode Tips

Wordpress shortcode

Have you ever now, that WordPress support shortcode? With shortcode we can easy insert some code or function on the post. Example we can put some Advertisement on the post without write a lot of bloated code. We can save a lot of time with shortcode.

The shortcode syntax varies, here are some examples:

  • [shortcode]
  • [shortcode atribute=”value”]
  • [shortcode]Text[/shortcode]

Shortcodes can be created to perform a handful of useful functions. To use any of the shortcodes in this post I recommend adding the functions to your functions.php theme file (create it if it does not exist!).

If the shortcode has been declared on the plugins or themes. When  the content displayed on the post. The [shortcode] will be change depend on the declaration on the shortcode.

Blue Anvil has been write some tips and trick useful shortcode for WordPress fans. And here some of my favorite.

Integrate some Adsense Ads

If you want to output some adsense ads in posts.
[sourcecode language=’php’]
function adsense_shortcode( $atts ) {
extract(shortcode_atts(array(
‘format’ => ‘1’,
), $atts));

switch ($format) {
case 1 :
$ad = ‘
‘;
break;
}
return $ad;
}
add_shortcode(‘adsense’, ‘adsense_shortcode’);
[/sourcecode]

How to use the code, just use like this sample [adsense] like this example

[adsense]

Add additional ad formats to the switch statement and you can output other ad formats using, for example, [adsense format="2"].

Show related posts

How about showing some related posts in your current post based on it’s tags? Lets do it!
[sourcecode language=’php’]
function related_posts_shortcode( $atts ) {

extract(shortcode_atts(array(
‘limit’ => ‘5’,
), $atts));

global $wpdb, $post, $table_prefix;

if ($post->ID) {

$retval = ‘

    ‘;

    // Get tags
    $tags = wp_get_post_tags($post->ID);
    $tagsarray = array();
    foreach ($tags as $tag) {
    $tagsarray[] = $tag->term_id;
    }
    $tagslist = implode(‘,’, $tagsarray);

    // Do the query
    $q = ”
    SELECT p.*, count(tr.object_id) as count
    FROM $wpdb->term_taxonomy AS tt, $wpdb->term_relationships AS tr, $wpdb->posts AS p
    WHERE tt.taxonomy =’post_tag’
    AND tt.term_taxonomy_id = tr.term_taxonomy_id
    AND tr.object_id = p.ID
    AND tt.term_id IN ($tagslist)
    AND p.ID != $post->ID
    AND p.post_status = ‘publish’
    AND p.post_date_gmt < NOW() GROUP BY tr.object_id ORDER BY count DESC, p.post_date_gmt DESC LIMIT $limit;"; $related = $wpdb->get_results($q);

    if ( $related ) {
    foreach($related as $r) {
    $retval .= ‘