If you are using post_class()
in your content
template like this …
<div <?php post_class(); ?>>
… you can filter that and add a special class:
add_filter( 'post_class', 'mark_first_post' );
function mark_first_post( $classes )
{
remove_filter( current_filter(), __FUNCTION__ );
$classes[] = 'first-post';
return $classes;
}
Your first post in a loop will now have the class first-post
. The nice thing is: this filter will run just one time and deactivate itself then.
You can also use another helper function:
function is_first_post()
{
static $called = FALSE;
if ( ! $called )
{
$called = TRUE;
return TRUE;
}
return FALSE;
}
You can test for the first post then in your template:
if ( is_first_post() )
{
// render the first post
}
else
{
// the other posts
}