WordPress.org

Make WordPress Core

Changeset 8695


Ignore:
Timestamp:
08/20/08 23:48:09 (7 years ago)
Author:
ryan
Message:

comment_class(). Props sandbox theme. see #7560

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-content/themes/classic/comments.php

    r7361 r8695  
    1313 
    1414<?php foreach ($comments as $comment) : ?> 
    15     <li id="comment-<?php comment_ID() ?>"> 
     15    <li <?php comment_class(); ?> id="comment-<?php comment_ID() ?>"> 
    1616    <?php echo get_avatar( $comment, 32 ); ?> 
    1717    <?php comment_text() ?> 
  • trunk/wp-content/themes/default/comments.php

    r7888 r8695  
    1515 
    1616    /* This variable is for alternating comment background */ 
    17     $oddcomment = 'class="alt" '; 
     17    $oddcomment = 'alt'; 
    1818?> 
    1919 
     
    2727    <?php foreach ($comments as $comment) : ?> 
    2828 
    29         <li <?php echo $oddcomment; ?>id="comment-<?php comment_ID() ?>"> 
     29        <li <?php comment_class($oddcomment) ?>id="comment-<?php comment_ID() ?>"> 
    3030            <?php echo get_avatar( $comment, 32 ); ?> 
    3131            <cite><?php comment_author_link() ?></cite> Says: 
     
    4343    <?php 
    4444        /* Changes every other comment to a different class */ 
    45         $oddcomment = ( empty( $oddcomment ) ) ? 'class="alt" ' : ''; 
     45        $oddcomment = ( empty( $oddcomment ) ) ? 'alt' : ''; 
    4646    ?> 
    4747 
  • trunk/wp-includes/comment-template.php

    r8600 r8695  
    217217function comment_author_url_link( $linktext = '', $before = '', $after = '' ) { 
    218218    echo get_comment_author_url_link( $linktext, $before, $after ); 
     219} 
     220 
     221/** 
     222 * Generates semantic classes for each comment element 
     223 * 
     224 * @since 2.7 
     225 * 
     226 * @param string|array $class One or more classes to add to the class list 
     227 * @param int $comment_id An optional comment ID 
     228 * @param int $post_id An optional post ID 
     229 */ 
     230function comment_class( $class = '', $comment_id = null, $post_id = null ) { 
     231    // Separates classes with a single space, collates classes for post DIV 
     232    echo 'class="' . join( ' ', get_comment_class( $class, $comment_id, $post_id ) ) . '"'; 
     233} 
     234 
     235/** 
     236 * Returns the classes for the comment div as an array 
     237 * 
     238 * @since 2.7 
     239 * 
     240 * @param string|array $class One or more classes to add to the class list 
     241 * @param int $comment_id An optional comment ID 
     242 * @param int $post_id An optional post ID 
     243 * @return array Array of classes 
     244 */ 
     245function get_comment_class( $class = '', $comment_id = null, $post_id = null ) { 
     246    static $comment_alt; 
     247 
     248    $comment = get_comment($comment_id); 
     249 
     250    $classes = array(); 
     251 
     252    // Get the comment type (comment, trackback), 
     253    $classes[] = $comment->comment_type; 
     254 
     255    // If the comment author has an id (registered), then print the log in name 
     256    if ( $comment->user_id > 0 && $user = get_userdata($comment->user_id) ) { 
     257        // For all registered users, 'byuser' 
     258        $classes[] = 'byuser comment-author-' . $user->user_nicename; 
     259        // For comment authors who are the author of the post 
     260        if ( $post = get_post($post_id) ) { 
     261            if ( $comment->user_id === $post->post_author ) 
     262                $classes[] = 'bypostauthor'; 
     263        } 
     264    } 
     265 
     266    if ( empty($comment_alt) ) 
     267        $comment_alt = 0; 
     268 
     269    if ( $comment_alt % 2 ) 
     270        $classes[] = 'odd'; 
     271    else 
     272        $classes[] = 'even'; 
     273 
     274    $comment_alt++; 
     275 
     276    if ( !empty($class) ) { 
     277        if ( !is_array( $class ) ) 
     278            $class = preg_split('#\s+#', $class); 
     279        $classes = array_merge($classes, $class); 
     280    } 
     281 
     282    return apply_filters('comment_class', $classes, $class, $comment_id, $post_id); 
    219283} 
    220284 
Note: See TracChangeset for help on using the changeset viewer.