Definition:
function get_post_class( $class = '', $post_id = null ) {}
Retrieve the classes for the post div as an array.
The class names are add are many. If the post is a sticky, then the ‘sticky’ class name. The class ‘hentry’ is always added to each post. For each category, the class will be added with ‘category-‘ with category slug is added. The tags are the same way as the categories with ‘tag-‘ before the tag slug. All classes are passed through the filter, ‘post_class’ with the list of classes, followed by $class parameter value, with the post ID as the last parameter.
Parameters
- string|array $class: One or more classes to add to the class list.
- int $post_id: An optional post ID.
Return values
returns:Array of classes.
Defined filters
- post_class
apply_filters('post_class', $classes, $class, $post->ID)
Source code
function get_post_class( $class = '', $post_id = null ) {
$post = get_post($post_id);
$classes = array();
if ( empty($post) )
return $classes;
$classes[] = 'post-' . $post->ID;
$classes[] = $post->post_type;
$classes[] = 'type-' . $post->post_type;
$classes[] = 'status-' . $post->post_status;
// Post Format
if ( post_type_supports( $post->post_type, 'post-formats' ) ) {
$post_format = get_post_format( $post->ID );
if ( $post_format && !is_wp_error($post_format) )
$classes[] = 'format-' . sanitize_html_class( $post_format );
else
$classes[] = 'format-standard';
}
// post requires password
if ( post_password_required($post->ID) )
$classes[] = 'post-password-required';
// sticky for Sticky Posts
if ( is_sticky($post->ID) && is_home() && !is_paged() )
$classes[] = 'sticky';
// hentry for hAtom compliance
$classes[] = 'hentry';
// Categories
if ( is_object_in_taxonomy( $post->post_type, 'category' ) ) {
foreach ( (array) get_the_category($post->ID) as $cat ) {
if ( empty($cat->slug ) )
continue;
$classes[] = 'category-' . sanitize_html_class($cat->slug, $cat->term_id);
}
}
// Tags
if ( is_object_in_taxonomy( $post->post_type, 'post_tag' ) ) {
foreach ( (array) get_the_tags($post->ID) as $tag ) {
if ( empty($tag->slug ) )
continue;
$classes[] = 'tag-' . sanitize_html_class($tag->slug, $tag->term_id);
}
}
if ( !empty($class) ) {
if ( !is_array( $class ) )
$class = preg_split('#\s+#', $class);
$classes = array_merge($classes, $class);
}
$classes = array_map('esc_attr', $classes);
return apply_filters('post_class', $classes, $class, $post->ID);
}
1581

February 12, 2011 


No comments yet... Be the first to leave a reply!