Themes4all giveaway: LOTS of prizes to win!!

May 24, 2013 at 4:00 pm

Here’s our new contest! This time, our partners Themes4All are giving away lots of premium themes and plugins to 5 lucky winners. Read on to know how you can join the contest and try to win one of the packages gave by Themes4All.com!

A word about Themes4All

Our sponsor is Themes4All.com, which is a newcomer in the WordPress premium theme business. They specialize in low cost/high quality themes.
They already released 20+ themes, each priced $10. Click here to view the available themes.

How to join the giveaway?

Joining the giveaway is super easy and free as usual. First, go to Themes4All.com and create a free account. Registration grant you access to a free theme each month. Once done, simply leave a comment on this post to join.
In two weeks (June 7, 2013) I’ll pick 5 winners using random.org.

Winners will get:
1. 4 template of your choice + premium beta responsive parallax slider
2. 3 template of your choice + premium beta responsive parallax slider
3. 2 template of your choice + premium beta responsive parallax slider
4. 1 template of your choice + premium beta responsive parallax slider
5. premium beta responsive parallax slider

If you won, you’ll receive your prize by email, directly by Themes4All staff. Now, good luck everyone!

How to automatically insert a list of related articles below the post

May 23, 2013 at 4:32 pm

When a reader finished reading one of your blog posts, why not suggesting him other article he might like as well? Here’s a quick tip to automatically display related posts (based on category) below the current post.

First, paste the code below into the functions.php file from your theme.

// "More from This Category" list by Barış Ünver @ Wptuts+
function wptuts_more_from_cat( $title = "More From This Category:" ) {
    global $post;
    // We should get the first category of the post
    $categories = get_the_category( $post->ID );
    $first_cat = $categories[0]->cat_ID;
    // Let's start the $output by displaying the title and opening the <ul>
    $output = '<div id="more-from-cat"><h3>' . $title . '</h3>';
    // The arguments of the post list!
    $args = array(
        // It should be in the first category of our post:
        'category__in' => array( $first_cat ),
        // Our post should NOT be in the list:
        'post__not_in' => array( $post->ID ),
        // ...And it should fetch 5 posts - you can change this number if you like:
        'posts_per_page' => 5
    );
    // The get_posts() function
    $posts = get_posts( $args );
    if( $posts ) {
        $output .= '<ul>';
        // Let's start the loop!
        foreach( $posts as $post ) {
            setup_postdata( $post );
            $post_title = get_the_title();
            $permalink = get_permalink();
            $output .= '<li><a href="' . $permalink . '" title="' . esc_attr( $post_title ) . '">' . $post_title . '</a></li>';
        }
        $output .= '</ul>';
    } else {
        // If there are no posts, we should return something, too!
        $output .= '<p>Sorry, this category has just one post and you just read it!</p>';
    }
    // Let's close the <div> and return the $output:
    $output .= '</div>';
    return $output;
}

Once done, open your single.php file and call the function as shown below, where you’d like to display the related posts:

<?php echo wptuts_more_from_cat( 'More From This Category:' ); ?>

Thanks to WP Tuts for the cool tip!

How to add nofollow attributes to all links in a specific category

May 21, 2013 at 5:55 pm

Sometimes you may want to have an entire category of your blog with nofollow links, for exemple if you’re linking to a lot of external resources. Here is a quick and easy recipe to do so. Enjoy!

Simply copy the code below and paste it on your functions.php file. Don’t forget to set the desired category ID on line 3.

function nofollow_cat_posts($text) {
global $post;
        if( in_category(1) ) { // SET CATEGORY ID HERE
                $text = stripslashes(wp_rel_nofollow($text));
        }
        return $text;
}
add_filter('the_content', 'nofollow_cat_posts');

Thanks to Sagive for submitting this function!

Automatically spam comments with a very long url

May 14, 2013 at 6:21 pm

Spam is definitely a problem for bloggers and most of you probably receive more than 100 spam comments per hour. Here is a simple recipe to automatically mark as spam all comments with an url longer than 50 characters.

Open your functions.php file and paste the code below in it. This code will automatically mark as spam all comments with an url longer than 50 chars. This can be changed on line 4.

<?php

  function rkv_url_spamcheck( $approved , $commentdata ) {
    return ( strlen( $commentdata['comment_author_url'] ) > 50 ) ? 'spam' : $approved;
  }

  add_filter( 'pre_comment_approved', 'rkv_url_spamcheck', 99, 2 );

?>

Thanks to CSS Tricks for the code snippet!

Deal of the week: SpyBar (3 licences to win!!)

May 3, 2013 at 3:01 pm

Today, I’m glad to introduce a new giveaway on WPRecipes, sponsored by our partners Mighty Deals. At the same time, I’m going to introduce SpyBar, an amazing tool for bloggers and website owners.

A word about Spybar

The Internet is one huge swap meet. So many sites “borrow” code or plugins from other sites to make their own that much better. And then someone else borrows from their site, and so on. Keeping up with the latest and greatest Web features is an exhausting experience, though. You can check out tons of forums, blogs, newsletters and more just to read up on the latest releases. You can also pay a ton of money to various online services to pull in stats and suggestions.

The best way, though? Just browse. Check out what your competition’s doing. If you find something you like, copy it. If only it were that easy to look beneath the hood. Well, it is. Thanks to SpyBar, you can pull in tons of useful data about any site, and you can do it all right from your Firefox or Chrome browser!

SpyBar is sold for only $7 for a limited time by Mighty Deals.

Here is a video demo of Spybar in action:

How to win a free Spybar licence!

Our partners from Mighty Deals are happy to give away 3 Spybar licences to WPRecipes readers. To enter the contest, simply leave a comment to this post to let me know you’d like to win a free Spybar licence. I’ll randomly pick 3 lucky winners on sunday using random.org. Winners will receive their prize directly in their email.

How to make translatable JavaScript strings on your WordPress theme

April 29, 2013 at 10:17 pm

Do you know that WordPress have a function called wp_localize_script(), which allow you to localize JavaScript strings? Here’s a practical example on how to use this little known but very useful function.

Simply paste the following code into your function.php file, where you generally enqueue scripts and styles. Line 4 shows how to use the wp_localize_script() function.

function prefix_enqueue_custom_script(){
	wp_register_script( 'prefix_custom_script', plugin_dir_url( __FILE__ ) .'js/custom-script.js', array( 'jquery' ) );
        wp_enqueue_script( 'prefix_custom_script' );
        wp_localize_script( 'prefix_custom_script', 'prefix_object_name', array(
		'upload' => __( 'upload', 'textdomain' ),
		'remove' => __( 'remove', 'textdomain' )
	) );
}

Thanks to Devin for this code!

How to add SVG upload support to your WordPress blog

April 25, 2013 at 4:21 pm

By default, WordPress uploader do not support the SVG format. As this file format is becoming quite popular theses days, here is a simple recipe to add SVG upload to your WordPress install.

Simply add the code below to functions.php in your WordPress theme. SVG upload will be supported once the file is saved.

add_filter('upload_mimes', 'my_upload_mimes');
 
function my_upload_mimes($mimes = array()) {
    $mimes['svg'] = 'image/svg+xml';
    return $mimes;
}

Thanks to dbushell for the snippet!

How to create a directory within the uploads folder

April 23, 2013 at 6:23 pm

When developing a plugin or theme, it can be useful to be able to programmatically create a directory within the wp-content/uploads folder. Here is a handy piece of code to do it.

Simply paste this code snippet on your functions.php file (or plugin file if you’re creating a plugin)

function myplugin_activate() {
    
    $upload = wp_upload_dir();
    $upload_dir = $upload['basedir'];
    $upload_dir = $upload_dir . '/mypluginfiles';
    if (! is_dir($upload_dir)) {
       mkdir( $upload_dir, 0700 );
    }
}
 
register_activation_hook( __FILE__, 'myplugin_activate' );

Thanks to Jean Galea for the snippet!

How to display an author bio excerpt on your WordPress blog

April 16, 2013 at 3:52 pm

WordPress offers users the option to add biographical info for each author. This bio can be displayed on your theme using the the_author_meta( ‘description’ ) function. But what if you’d like to display only a bio excerpt? Here’s a function to do it.

The first thing to do is to create the function. To do so, paste the following code into your functions.php file:

<?php
	function author_excerpt (){	                     					
		$word_limit = 20; // Limit the number of words
		$more_txt = 'read more about:'; // The read more text
		$txt_end = '...'; // Display text end 
		$authorName = get_the_author();
		$authorUrl = get_author_posts_url( get_the_author_meta('ID'));
		$authorDescription = explode(" ", get_the_author_meta('description'));
		$displayAuthorPageLink = count($authorDescription) > $word_limit ? $txt_end.'<br /> '.$more_txt.' <a href="'.$authorUrl.'">'.$authorName.'</a>' : '' ;
		$authorDescriptionShort = array_slice($authorDescription, 0, ($word_limit));
		return (implode($authorDescriptionShort, ' ')).$displayAuthorPageLink; 		
	}
?>

Once done, simply call the function when needed, as shown below:

<?php  if (function_exists('author_excerpt')){echo author_excerpt();} ?>

Thanks to Tim Marcher for the tip!

How to detect a comments page on your WordPress blog

April 15, 2013 at 4:04 pm

On WordPress dashboard, there’s an option to divide comments lists in sub pages. Unfortunately, there’s no built-in conditional tag to know if you’re currently on a comment page. So let’s built one!

Simply put the following code anywhere on your theme files. If you’re on a comment page, the conditional statement will return true, so any code within brackets will be executed.

$cpage = get_query_var( 'cpage' );
if ( is_singular() && $cpage > 0 ){
    // Your code here
}

This code works on posts, pages, attachments as well as all custom post_types.

Thanks to Daniel Roch for the cool tip!