function thematic_comment_class($print = true) { global $comment, $post, $thematic_comment_alt, $comment_depth, $comment_thread_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{$thematic_comment_alt}"; } else { $c[] = "t{$thematic_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 thematic_date_classes(mysql2date('U', $comment->comment_date), $c, 'c-'); if (++$thematic_comment_alt % 2) { $c[] = 'alt'; } // Comment depth $c[] = "depth-{$comment_depth}"; // Separates classes with a single space, collates classes for comment LI $c = join(' ', apply_filters('comment_class', $c)); // Available filter: comment_class // Tada again! return $print ? print $c : $c; }
/** * * Generates semantic classes for BODY element */ function bb_base_body_class($print = true) { global $wp_query, $current_user; // It's surely a WordPress blog, right? $c = array('wordpress'); // Applies the time- and date-based classes (below) to BODY element thematic_date_classes(time(), $c); // Generic semantic classes for what type of content is displayed is_front_page() ? $c[] = 'home' : null; // For the front page, if set is_home() ? $c[] = 'blog' : null; // For the blog posts page, if set is_archive() ? $c[] = 'archive' : null; is_date() ? $c[] = 'date' : null; is_search() ? $c[] = 'search' : null; is_paged() ? $c[] = 'paged' : null; is_page() ? $c[] = 'page' : null; is_single() ? $c[] = 'post' : null; is_attachment() ? $c[] = 'attachment' : null; is_404() ? $c[] = 'four04' : null; // CSS does not allow a digit as first character is_tax() ? $c[] = 'taxonomy' : null; // Special classes for BODY element when a singular post if (is_singular()) { $c[] = 'singular'; } if (is_single()) { $postID = $wp_query->post->ID; the_post(); $c[] = 'slug-' . $wp_query->post->post_name; $c[] = 'single postid-' . $postID; if (isset($wp_query->post->post_date)) { thematic_date_classes(mysql2date('U', $wp_query->post->post_date), $c, 's-'); } // Adds category classes for each category on single posts if ($cats = get_the_category()) { foreach ($cats as $cat) { $c[] = 's-category-' . $cat->slug; } } // Adds tag classes for each tags on single posts if ($tags = get_the_tags()) { foreach ($tags as $tag) { $c[] = 's-tag-' . $tag->slug; } } /* Adds taxonomy classes for each tax on single posts - Not working right ** $taxonomy = get_taxonomy( get_query_var( 'taxonomy' )); $tax = $wp_query->get_queried_object(); if ( $tax = $wp_query->get_queried_object() ) foreach ( $tax as $taxi ) $c[] = 's-tax-' . $taxi->slug; */ // Adds MIME-specific classes for attachments if (is_attachment()) { $mime_type = get_post_mime_type(); $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/'); $c[] = 'attach-id-' . $postID . ' attach-' . str_replace($mime_prefix, "", "{$mime_type}"); } // Adds author class for the post author $c[] = 's-author-' . sanitize_title_with_dashes(strtolower(get_the_author_meta('display_name'))); rewind_posts(); if (has_excerpt()) { $c[] = 's-has-excerpt'; } if (pings_open()) { $c[] = 's-pings-open'; } if (comments_open()) { $c[] = 's-comments-open'; } if ($post->post_password) { $c[] = 's-protected'; } if (is_sticky()) { $c[] = 's-sticky'; } } elseif (is_author()) { $author = $wp_query->get_queried_object(); $c[] = 'author'; $c[] = 'author-' . $author->user_nicename; } elseif (is_category()) { $cat = $wp_query->get_queried_object(); $c[] = 'category'; $c[] = 'category-' . $cat->slug; } elseif (is_tag()) { $tags = $wp_query->get_queried_object(); $c[] = 'tag'; $c[] = 'tag-' . $tags->slug; } elseif (is_page()) { $pageID = $wp_query->post->ID; $page_children = wp_list_pages("child_of={$pageID}&echo=0"); the_post(); $c[] = 'slug-' . $wp_query->post->post_name; $c[] = 'page pageid-' . $pageID; $c[] = 'page-author-' . sanitize_title_with_dashes(strtolower(get_the_author_meta('login'))); // Checks to see if the page has children and/or is a child page; props to Adam if ($page_children) { $c[] = 'page-parent'; } if ($wp_query->post->post_parent) { $c[] = 'page-child parent-pageid-' . $wp_query->post->post_parent; } if (has_excerpt()) { $c[] = 'page-has-excerpt'; } if (comments_open()) { $c[] = 'page-comments-open'; } if (pings_open()) { $c[] = 'page-pings-open'; } if ($post->post_password) { $c[] = 'page-protected'; } if (is_page_template() & !is_page_template('default')) { $c[] = 'page-template page-template-' . str_replace('.php', '-php', get_post_meta($pageID, '_wp_page_template', true)); } rewind_posts(); } elseif (is_search()) { the_post(); if (have_posts()) { $c[] = 'search-results'; } rewind_posts(); } if ($current_user->ID) { $c[] = 'loggedin'; } // Paged classes; for 'page X' classes of index, single, etc. if ((($page = $wp_query->get('paged')) || ($page = $wp_query->get('page'))) && $page > 1) { $page = intval($page); // make sure $page is an integer $c[] = 'paged-' . $page; if (is_single()) { $c[] = 'single-paged-' . $page; } elseif (is_page()) { $c[] = 'page-paged-' . $page; } elseif (is_tag()) { $c[] = 'tag-paged-' . $page; } elseif (is_tax()) { $c[] = 'tax-paged-' . $page; } elseif (is_date()) { $c[] = 'date-paged-' . $page; } elseif (is_author()) { $c[] = 'author-paged-' . $page; } elseif (is_search()) { $c[] = 'search-paged-' . $page; } elseif (is_category()) { $c[] = 'category-paged-' . $page; } } // A little Browser detection shall we? $browser = $_SERVER['HTTP_USER_AGENT']; // Mac, PC ...or Linux if (preg_match("/Mac/", $browser)) { $c[] = 'mac'; } elseif (preg_match("/Windows/", $browser)) { $c[] = 'windows'; } elseif (preg_match("/Linux/", $browser)) { $c[] = 'linux'; } else { $c[] = 'unknown-os'; } // Checks browsers in this order: Chrome, Safari, Opera, MSIE, FF if (preg_match("/Chrome/", $browser)) { $c[] = 'chrome'; /* CHROME */ preg_match("/Chrome\\/(\\d.\\d)/si", $browser, $matches); $ch_version = 'ch' . str_replace('.', '-', $matches[1]); $c[] = $ch_version; } elseif (preg_match("/Safari/", $browser)) { $c[] = 'safari'; /* SAFARI */ preg_match("/Version\\/(\\d.\\d)/si", $browser, $matches); $sf_version = 'sf' . str_replace('.', '-', $matches[1]); $c[] = $sf_version; } elseif (preg_match("/Opera/", $browser)) { $c[] = 'opera'; /* OPERA */ preg_match("/Opera\\/(\\d.\\d)/si", $browser, $matches); $op_version = 'op' . str_replace('.', '-', $matches[1]); $c[] = $op_version; } elseif (preg_match("/MSIE/", $browser)) { $c[] = 'msie'; /* IE */ if (preg_match("/MSIE 6.0/", $browser)) { $c[] = 'ie6'; } elseif (preg_match("/MSIE 7.0/", $browser)) { $c[] = 'ie7'; } elseif (preg_match("/MSIE 8.0/", $browser)) { $c[] = 'ie8'; } /* IE 8.0 */ } elseif (preg_match("/Firefox/", $browser) && preg_match("/Gecko/", $browser)) { $c[] = 'firefox'; /* FIREFOX */ preg_match("/Firefox\\/(\\d)/si", $browser, $matches); $ff_version = 'ff' . str_replace('.', '-', $matches[1]); $c[] = $ff_version; } else { $c[] = 'unknown-browser'; /* UNKNOWN */ } // Separates classes with a single space, collates classes for BODY $c = join(' ', apply_filters('body_class', $c)); // Available filter: body_class return $print ? print $c : $c; }
function bodystyle($print = true) { global $wp_query, $current_user; // Generic semantic classes for what type of content is displayed is_front_page() ? $c[] = 'home' : null; // For the front page, if set is_home() ? $c[] = 'blog' : null; // For the blog posts page, if set is_archive() ? $c[] = 'archive' : null; is_date() ? $c[] = 'by-date' : null; is_search() ? $c[] = 'search' : null; is_paged() ? $c[] = 'paged' : null; is_attachment() ? $c[] = 'attachment' : null; is_404() ? $c[] = 'four04' : null; // CSS does not allow a digit as first character // Special classes for BODY element when a single post if (is_single()) { $postID = $wp_query->post->ID; the_post(); // Adds 'single' class and class with the post ID $c[] = 'single postid-' . $postID; // Adds classes for the month, day, and hour when the post was published if (isset($wp_query->post->post_date)) { thematic_date_classes(mysql2date('U', $wp_query->post->post_date), $c, ''); } // Adds category classes for each category on single posts if ($cats = get_the_category()) { foreach ($cats as $cat) { $c[] = 'category-' . $cat->slug; } } // Adds tag classes for each tags on single posts if ($tags = get_the_tags()) { foreach ($tags as $tag) { $c[] = 'tag-' . $tag->slug; } } // Adds MIME-specific classes for attachments if (is_attachment()) { $mime_type = get_post_mime_type(); $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/'); $c[] = 'attachmentid-' . $postID . ' attachment-' . str_replace($mime_prefix, "", "{$mime_type}"); } // Adds author class for the post author $c[] = 'author-' . sanitize_title_with_dashes(strtolower(get_the_author_login())); rewind_posts(); } elseif (is_author()) { $author = $wp_query->get_queried_object(); $c[] = 'author'; $c[] = 'author-' . $author->user_nicename; } elseif (is_category()) { $cat = $wp_query->get_queried_object(); $c[] = 'category'; $c[] = 'category-' . $cat->slug; } elseif (is_tag()) { $tags = $wp_query->get_queried_object(); $c[] = 'tag'; $c[] = 'tag-' . $tags->slug; } elseif (is_page()) { $pageID = $wp_query->post->ID; $page_children = wp_list_pages("child_of={$pageID}&echo=0"); the_post(); $c[] = 'page pageid-' . $pageID; $c[] = 'page-author-' . sanitize_title_with_dashes(strtolower(get_the_author('login'))); // Checks to see if the page has children and/or is a child page; props to Adam if ($page_children) { $c[] = 'page-parent'; } if ($wp_query->post->post_parent) { $c[] = 'page-child parent-pageid-' . $wp_query->post->post_parent; } if (is_page_template()) { // Hat tip to Ian, themeshaper.com $c[] = 'page-template page-template-' . str_replace('.php', '-php', get_post_meta($pageID, '_wp_page_template', true)); } rewind_posts(); } elseif (is_search()) { the_post(); if (have_posts()) { $c[] = 'search-results'; } else { $c[] = 'search-no-results'; } rewind_posts(); } // Paged classes; for 'page X' classes of index, single, etc. if ((($page = $wp_query->get('paged')) || ($page = $wp_query->get('page'))) && $page > 1) { $c[] = 'paged-' . $page; if (is_single()) { $c[] = 'single-paged-' . $page; } elseif (is_page()) { $c[] = 'page-paged-' . $page; } elseif (is_category()) { $c[] = 'category-paged-' . $page; } elseif (is_tag()) { $c[] = 'tag-paged-' . $page; } elseif (is_date()) { $c[] = 'date-paged-' . $page; } elseif (is_author()) { $c[] = 'author-paged-' . $page; } elseif (is_search()) { $c[] = 'search-paged-' . $page; } } // Separates classes with a single space, collates classes for BODY $c = join(' ', apply_filters('body_class', $c)); // Available filter: body_class // And tada! return $print ? print $c : $c; }
/** * Adds classes to commment li's using the WordPress comment_class filter * * @since 1.0 */ function thematic_add_comment_class($classes) { global $comment, $post; // Add time and date based classes thematic_date_classes(mysql2date('U', $comment->comment_date), $classes, 'thm-c-'); // Do not duplicate values return array_unique($classes); }