Exemplo n.º 1
0
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));
    // Available filter: comment_class
    // Tada again!
    return $print ? print $c : $c;
}
Exemplo n.º 2
0
function sandbox_classes($classes)
{
    $c = array('wordpress');
    sandbox_date_classes(time(), $c);
    foreach ($c as $single) {
        $classes[] = $single;
    }
    return $classes;
}
Exemplo n.º 3
0
function sandbox_comment_class($print = true)
{
    global $comment, $post, $sandbox_comment_alt;
    $c = array($comment->comment_type, "c{$sandbox_comment_alt}");
    if ($comment->user_id > 0) {
        $user = get_userdata($comment->user_id);
        $c[] = "byuser commentauthor-{$user->user_login}";
        if ($comment->user_id === $post->post_author) {
            $c[] = 'bypostauthor';
        }
    }
    sandbox_date_classes(mysql2date('U', $comment->comment_date), $c, 'c-');
    if (++$sandbox_comment_alt % 2) {
        $c[] = 'alt';
    }
    if (is_trackback()) {
        $c[] = 'trackback';
    }
    $c = join(' ', apply_filters('comment_class', $c));
    return $print ? print $c : $c;
}
Exemplo n.º 4
0
function sandbox_body_class($print = true)
{
    global $wp_query, $current_user, $wp_version;
    $version = sanitize_title_with_dashes(str_replace('.', '-', $wp_version));
    // It's surely a WordPress blog, right?
    $c = array('wp-' . $version);
    // Applies the time- and date-based classes (below) to BODY element
    //sandbox_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_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)) {
            sandbox_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
        /** to much selectoor bad for SEO ck $
        		if ( $tags = get_the_tags() )
        			foreach ( $tags as $tag )
        				$c[] = 's-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[] = 's-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();
    }
    // For when a visitor is logged in while browsing
    if ($current_user->ID) {
        $c[] = 'loggedin';
    } else {
        $c[] = 'guest';
    }
    // 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;
        }
    }
    // Language settings from K2 body class
    $locale = get_locale();
    if (empty($locale)) {
        $locale = 'en';
    } else {
        $lang_array = split('_', $locale);
        $locale = $lang_array[0];
    }
    $c[] = 'lang-' . $locale;
    // 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;
}