post_type, $post->post_status );
// Author for the post queried
$c[] = 'author-' . sanitize_title_with_dashes(strtolower(get_the_author('login')));
// Category for the post queried
foreach ( (array) get_the_category() as $cat )
$c[] = 'category-' . $cat->slug;
// Tags for the post queried; if not tagged, use .untagged
if ( get_the_tags() == null ) {
$c[] = 'untagged';
} else {
foreach ( (array) get_the_tags() as $tag )
$c[] = 'tag-' . $tag->slug;
}
// For password-protected posts
if ( $post->post_password )
$c[] = 'protected';
// Applies the time- and date-based classes (below) to post DIV
sandbox_date_classes( mysql2date( 'U', $post->post_date ), $c );
// If it's the other to the every, then add 'alt' class
if ( ++$sandbox_post_alt % 2 )
$c[] = 'alt';
// Separates classes with a single space, collates classes for post DIV
$c = join( ' ', apply_filters( 'post_class', $c ) );
// And tada!
return $print ? print($c) : $c;
}
// Define the num val for 'alt' classes (in post DIV and comment LI)
$sandbox_post_alt = 1;
// Generates semantic classes for each comment LI element
function sandbox_comment_class( $print = true ) {
global $comment, $post, $sandbox_comment_alt;
// Collects the comment type (comment, trackback),
$c = array( $comment->comment_type );
// Counts trackbacks (t[n]) or comments (c[n])
if ( $comment->comment_type == 'comment' ) {
$c[] = "c$sandbox_comment_alt";
} else {
$c[] = "t$sandbox_comment_alt";
}
// If the comment author has an id (registered), then print the log in name
if ( $comment->user_id > 0 ) {
$user = get_userdata($comment->user_id);
// For all registered users, 'byuser'; to specificy the registered user, 'commentauthor+[log in name]'
$c[] = 'byuser comment-author-' . sanitize_title_with_dashes(strtolower( $user->user_login ));
// For comment authors who are the author of the post
if ( $comment->user_id === $post->post_author )
$c[] = 'bypostauthor';
}
// If it's the other to the every, then add 'alt' class; collects time- and date-based classes
sandbox_date_classes( mysql2date( 'U', $comment->comment_date ), $c, 'c-' );
if ( ++$sandbox_comment_alt % 2 )
$c[] = 'alt';
// Separates classes with a single space, collates classes for comment LI
$c = join( ' ', apply_filters( 'comment_class', $c ) );
// Tada again!
return $print ? print($c) : $c;
}
// Generates time- and date-based classes for BODY, post DIVs, and comment LIs; relative to GMT (UTC)
function sandbox_date_classes( $t, &$c, $p = '' ) {
$t = $t + ( get_option('gmt_offset') * 3600 );
$c[] = $p . 'y' . gmdate( 'Y', $t ); // Year
$c[] = $p . 'm' . gmdate( 'm', $t ); // Month
$c[] = $p . 'd' . gmdate( 'd', $t ); // Day
$c[] = $p . 'h' . gmdate( 'H', $t ); // Hour
}
// For category lists on category archives: Returns other categories except the current one (redundant)
function sandbox_cats_meow($glue) {
$current_cat = single_cat_title( '', false );
$separator = "\n";
$cats = explode( $separator, get_the_category_list($separator) );
foreach ( $cats as $i => $str ) {
if ( strstr( $str, ">$current_cat<" ) ) {
unset($cats[$i]);
break;
}
}
if ( empty($cats) )
return false;
return trim(join( $glue, $cats ));
}
// For tag lists on tag archives: Returns other tags except the current one (redundant)
function sandbox_tag_ur_it($glue) {
$current_tag = single_tag_title( '', '', false );
$separator = "\n";
$tags = explode( $separator, get_the_tag_list( "", "$separator", "" ) );
foreach ( $tags as $i => $str ) {
if ( strstr( $str, ">$current_tag<" ) ) {
unset($tags[$i]);
break;
}
}
if ( empty($tags) )
return false;
return trim(join( $glue, $tags ));
}
// Produces an avatar image with the hCard-compliant photo class
function sandbox_commenter_link() {
if (function_exists('get_avatar')) {
$commenter = get_comment_author_link();
if ( ereg( ']* class=[^>]+>', $commenter ) ) {
$commenter = ereg_replace( '(]* class=[\'"]?)', '\\1url ' , $commenter );
} else {
$commenter = ereg_replace( '(' . $commenter . '';
} else {
//alternate gravatar code for < 2.5
$email = get_comment_author_email();
$grav_url = "http://www.gravatar.com/avatar.php?gravatar_id=" . md5($email) ."&size=32";
$commenter = get_comment_author_link();
if ( ereg( ']* class=[^>]+>', $commenter ) ) {
$commenter = ereg_replace( '(]* class=[\'"]?)', '\\1url ' , $commenter );
} else {
$commenter = ereg_replace( '(" );
echo "
".$avatar . '
' . $commenter . '';
}
}
// Sandbox gallery short code; styles used in style.css file
function sandbox_gallery($attr) {
global $post;
// Sets our defaults for the Sandbox gallery short code
extract( shortcode_atts(
array(
'orderby' => 'menu_order ASC, ID ASC',
'id' => $post->ID,
'itemtag' => 'dl',
'icontag' => 'dt',
'captiontag' => 'dd',
'columns' => 3,
'size' => 'thumbnail',
),
$attr ) );
$id = intval($id);
$orderby = addslashes($orderby);
$attachments = get_children("post_parent=$id&post_type=attachment&post_mime_type=image&orderby=\"{$orderby}\"");
// If we have nothing, show nothing
if ( empty($attachments) )
return '';
// Shows simple image links when viewed in a feed
if ( is_feed() ) {
$output = "\n";
foreach ( $attachments as $id => $attachment )
$output .= wp_get_attachment_link( $id, $size, true ) . "\n";
return $output;
}
$listtag = tag_escape($listtag);
$itemtag = tag_escape($itemtag);
$captiontag = tag_escape($captiontag);
$columns = intval($columns);
// Divides number of columns for even widths
$itemwidth = $columns > 0 ? floor(100/$columns) : 100;
// Let's begin our gallery
$output = apply_filters( "gallery_style", "
" );
// We're using pretty much the same code from ../wp-includes/media.php
foreach ( $attachments as $id => $attachment ) {
$link = wp_get_attachment_link( $id, $size, true );
// This is our 'wrapper' for each gallery item
$output .= "<{$itemtag} class='gallery-item' style='width:{$itemwidth}%;'>";
// And now we have the actual image link
$output .= "<{$icontag} class='gallery-icon'>$link{$icontag}>";
// Next, show the image caption if present
if ( $captiontag && trim($attachment->post_excerpt) ) {
$output .= "<{$captiontag} class='gallery-caption'>{$attachment->post_excerpt}{$captiontag}>";
}
// Close the gallery item 'wrapper'
$output .= "{$itemtag}>";
// Start a new gallery set for our 'columns'
if ( $columns > 0 && ++$i % $columns == 0 ) {
$gallery_count = 2;
$output .= "\n