[wp-hackers] has_tag()
    Otto 
    otto at ottodestruct.com
       
    Fri Apr  4 14:47:08 GMT 2008
    
    
  
On Fri, Apr 4, 2008 at 8:26 AM, Mistah P <mistahp.hackers at gmail.com> wrote:
>  That is a handy function. I'd like to see that in core, provided it's
>  made a little more flexible (like returning true if there's any tag
>  when nothing is passed to the function, and maybe checking tags by id
>  or slug).
First stab at that, tell me if I missed anything:
/**
 * has_tag() - Check if the current post has the given tag
 *
 * @package WordPress
 * @subpackage Taxonomy
 * @since 2.5.1
 *
 * @uses wp_get_object_terms() Gets the tags for returning. Args can
be found here
 *
 * @param string|int $tag Optional. The tag name/id/slug to check for
 * @return bool True if the current post has the given tag, or any
tag, if no tag specified
 */
function has_tag( $tag='' ) {
        global $post;
	$taxonomy = "post_tag";
	if ( !in_the_loop() ) return false; // in-the-loop function
	$post_id = (int) $post->ID;
        $terms = get_object_term_cache($post_id, $taxonomy);
        if (empty($terms))
        	$terms = wp_get_object_terms($post_id, $taxonomy);
        if (empty($tag)) return (!empty($terms));
	foreach($terms as $term) {
		if($term->name == $tag) return true;
		if($term->slug == $tag) return true;
		if($term->term_id == $tag) return true;
	}
	
	return false;
}
    
    
More information about the wp-hackers
mailing list