Support » Requests and Feedback » fix comment_class();

  • Currently, comment_class() add “odd” or “even” to a comment’s class, presumably to enable alternating colors on a list of comments. It’s pretty fail when it comes to threaded comments, though.

    • comment 1
      • first reply to comment 1
        • reply to the reply
      • Second reply to comment 1
    • comment 2

    In this example, clearly you’d want comment 1 to be class=”odd” and comment 2 to be class=”even” if you were alternating colors. No dice. comment_class is no respecter of hierarchy or depth.

    In this scenario you get:
    comment 1: class=”odd”
    first reply to comment 1: class=”even”
    reply to the reply : class=”odd”
    Second reply to comment 1: class=”even”
    comment 2: class=”odd”

    Note that comment 1 and comment 2 both get the same class, and therefore if they’re used for styles, they’ll get the same appearance. True, they also get “thread-odd” and “thread-even” (respectively) so you can style on that, but that doesn’t help with first reply and second reply — which both get class=”even”. Only the first level in the hierarchy gets “thread-odd” and “thread-even” so you’ve still got two sequential comments with identical styling.

    It would be useful if the “odd” and “even” assignments reset for each level of a thread. Then I could use them in conjunction with their level (which is already assigned by comment_class()) to get approprite styles. So we’d get this:

    • comment 1 (class=”odd thread-odd depth-1″)
      • first reply to comment 1 (class=”odd depth-2″)
        • reply to the reply (class=”odd depth-3″)
      • Second reply to comment 1 (class=”even depth-2″)
    • comment 2 (class=”even thread-even depth-1″)
      • first reply to comment2 (class=”odd depth-2″)

    if a depth was an even number, it would have one pattern for odd/even. If the depth was an odd number, then it would have a different pattern for odd/even.

    As it is, i’m considering a jQuery hack to make the style changes.

  • The topic ‘fix comment_class();’ is closed to new replies.