A fun part of customizing Wordpress themes is designing a comments format which complements the rest of the site. Here are three examples from recent projects, including code samples and downloads to the original .PSDs:
- Green Gravatars
This comment style was part of a very green-and-beige environmental blog which since received a makeover. It requires the gravatar plugin and three different images: the scanlines, the clock and the gradient, which can be exported from your .PSD.
First, we’ll need to first edit the ordered-list section of the “comments.php” template:
<ol class="commentlist"> <?php foreach ($comments as $comment) : ?> <li <?php echo $oddcomment; ?>id="comment-<?php comment_ID() ?>"> <cite> <img src="<?php gravatar("R", 32); ?>" alt="" /> <span class="author"><?php comment_author_link() ?></span><br /><span class="time"><?php comment_time() ?></span> on <a href="#comment-<?php comment_ID() ?>" title=""><?php comment_date('F jS, Y') ?></a> <?php edit_comment_link('edit',' ',''); ?> </cite> <div class="commenttext"><?php comment_text() ?></div> <?php if ($comment->comment_approved == '0') : ?> <em>Your comment is awaiting moderation.</em> <?php endif; ?> </li> <?php /* Changes every other comment to a different class */ $oddcomment = ( empty( $oddcomment ) ) ? 'class="alt" ' : ''; ?> <?php endforeach; /* end for each comment */ ?> </ol>Aside from a few images, the rest of the styling is accomplished with CSS:
ol.commentlist { margin:0; padding:0; } .commentlist li { list-style:none; margin-bottom:14px; } .commentlist cite { padding: 7px; display:block; font-style:normal; background:url(http://www.yoursite.com/images/bg_comments2_cite.gif); border-top:1px solid #d6e4c1; border-bottom:1px solid #779d42; color:#596e3b; } .commentlist a:link, .commentlist a:visited { color:#596e3b; } .commentlist a:hover, .commentlist a:active { color:#8ec343; } .commentlist cite img { padding:1px; border:1px solid #aab59a; float:left; margin-right:9px; } .commentlist .author { font: small-caps bold 1.2em Georgia, "Times New Roman", Times, serif; text-decoration:underline; } .commentlist .time { background: url(http://www.yoursite.com/images/bg_clock.gif) no-repeat 1px; padding-left:13px; } .commenttext { background: #9bc561 url(http://www.yoursite.com/images/bg_comments2_text.jpg) repeat-x bottom; border-top:1px solid #c5f386; padding: 0 20px 10px 20px; color:#fafcf6; }Keep in mind, each of these examples uses ems for font sizing, so your existing CSS may need to be tinkered with to match the screenshot above.
- The Speech Bubble
I designed this comment style for my company’s website. It requires two images, the quote marks and the little curl. The relevant template code looks like this:
<ol class="commentlist"> <?php foreach ($comments as $comment) : ?> <li <?php echo $oddcomment; ?>id="comment-<?php comment_ID() ?>"> <div class="quote"><?php comment_text() ?></div> <?php if ($comment->comment_approved == '0') : ?> <em>Your comment is awaiting moderation.</em> <?php endif; ?> </li> <cite><?php comment_author_link() ?> on <a href="#comment-<?php comment_ID() ?>" title=""><?php comment_date('F jS, Y') ?> at <?php comment_time() ?> <?php edit_comment_link('edit',' ',''); ?></a></cite> <?php /* Changes every other comment to a different class */ $oddcomment = ( empty( $oddcomment ) ) ? 'class="alt" ' : ''; ?> <?php endforeach; /* end for each comment */ ?> </ol>And here is the CSS:
.commentlist .quote { background:url(http://www.yoursite.com/images/bg_quote.gif) no-repeat top right; } .commentlist li { padding: 5px 18px 22px 18px; margin-top:15px; background:#454545 url(http://www.yoursite.com/images/bg_commentlist.gif) bottom no-repeat; color:#e4edee; } .commentlist cite { display:block; font-style:normal } .commentlist cite a:link, .commentlist cite a:visited { color:#88e5f0; text-decoration:none; } .commentlist cite a:hover, .commentlist cite a:active { color:#FFF; text-decoration:underline; } - Alternating Arrows
This comment styling originated from a music magazine I mocked up but never quite launched (so feel free to use it). I don’t always make use of the “.alt” class for comments, but it’s handy here for making the arrow and colors alternate. The images used are two different “paint” effects, the diagonal pattern, the chainlink and two kinds of arrows.
Here is the template code:
<ol class="commentlist"> <?php foreach ($comments as $comment) : ?> <li <?php echo $oddcomment; ?>id="comment-<?php comment_ID() ?>"> <div class="commenttext"> <cite><?php comment_author_link() ?></cite> <?php comment_text() ?> <span class="date"><img src="/images/commentlink.gif" alt="" /> <a href="#comment-<?php comment_ID() ?>" title=""><?php comment_time() ?> on <?php comment_date('n/j/y') ?></a></span> <?php edit_comment_link('edit',' ',''); ?> </div> <?php if ($comment->comment_approved == '0') : ?> <em>Your comment is awaiting moderation.</em> <?php endif; ?> </li> <?php /* Changes every other comment to a different class */ $oddcomment = ( empty( $oddcomment ) ) ? 'class="alt" ' : '';?> <?php endforeach; /* end for each comment */ ?> </ol>And here is the CSS:
ol.commentlist { margin:0; padding:0; } .commentlist li { margin-bottom:8px; background: #60360b url(http://www.yoursite.com/images/comment_arrows.gif) bottom no-repeat; color:#FFF; list-style:none; width:413px; } .commentlist .commenttext { background:url(http://www.yoursite.com/images/bg_paint.gif) no-repeat; padding:22px 22px 50px 22px; } .commentlist cite { display:block; color:#FFF; font-weight:bold; text-transform:uppercase; font-style:normal; background:url(http://www.yoursite.com/images/bg_cite_arrows.gif) bottom repeat-x; padding-bottom:12px; font-size:1.1em; } .commentlist a:link, .commentlist a:visited { color:#fff9b9; } .commentlist a:hover, .commentlist a:active { color:#FFF; } .commentlist .date { background:#930e27; padding:3px; } li.alt { background:#836241 url(http://www.yoursite.com/images/comment_arrows_alt.gif) no-repeat bottom; } li.alt .commenttext { background:url(http://www.yoursite.com/images/bg_paint_alt.gif) no-repeat; } li.alt .date { background:#67421c; padding:3px; }
Follow me on Twitter
8:13 pm
very nice, thank you
9:30 am
This will help a treat ! THanks for sharing… Rob
10:30 pm
thx for this, im gonna test it on my blog, :) !
12:54 pm
Awesome tutor and examples. I choosed green style and implemeted it on my blogs. Thank you for your effort. Keep up writting other tips.
3:14 pm
Thank you i just downloaded it and i liked styling comments would be very useful at my blog.
8:27 am
awesome post! i have styled my comments using your tutorial! :-)
10:27 am
Sweet!!
1:19 am
[url=http://online-seek.net/make-watches/rado-watches-home.html]replica watches corum bridge of gold[/url]
[url=http://online-seek.net/top-replica-warches/watchid674.html]baby g shock watches[/url]
10:59 pm
Helpful. Thanks. I’m also looking for how to add the formatting buttons for comments you use here yourself for those posting comments. ie. bold, italics, link, indent etc.
9:29 pm
thanks u very good..
1:53 am
Beautiful styling! I’m determined to make this work, though I must admit I’ve spent quite a while trying to identify the errors. I keep getting Parse Error codes and the only changes I made was add this code. *sigh*
1:54 am
very helpful reading, thanks
7:08 am
Thank you for the info, I’m planning to improve my blog.
8:33 am
Thanks for this, we spend several hours today fixing the look of our comments, untill we stumble on your page without any luck!
If you should have new designs later on, please inform us about that
Regards
Morten
5:54 pm
Hi, I have a typepad account and I was wondering if anyone new of a tutorial that went step by step to show how to style the comment section. The above is great but I’m a complete novice and need a bit more explaining. Thanks so much !
2:40 am
Thanks for sharing….great
11:24 am
Cool!
Do you happen to have anything for styling an “About This Author” section, that could be added to the end of a post?
Just wondering…
1:36 am
I think I got some result. Thank you here. Great job on the theme.
Thanks for sharing.
7:18 am
hi i want to have my comments across 4 columns do you have any examples of how to do this? Thanks
1:59 pm
Cool! I like the second one. Thanx buddy!
8:28 pm
Nice tutorial. I’m using Cutline’s 1.4-3ColumnSplit theme and trying to implement the Alternating Arrows comment style but I’m not sure where to add the template code within my comments.php. Any assistance will be appreciated.
Thanks
12:00 am
Thanks so much for taking the time to write this post. I was able to implement it with no problems whatsoever. Big up!
5:08 am
Thanks for your great help!
4:12 pm
Thanks ! It will help a lot
9:02 am
hi very good thank you
6:56 am
thank you very good…
11:42 am
Very useful info. Thanks for sharing.
11:37 am
Is the function “emptyempty” (Line 15) supposed to just be “empty”? That change worked for me.
11:50 am
Good question, that code is about 2 years out of date. There has since been a comment_class function that generates classes to allow alternate li styles.
9:39 pm
Small edit required in first comment box css:
background: #9bc561 url(http://www.yoursite.com/images/bg_comments2_text.jpg) repeat-x bottombottom;
Should be:
background: #9bc561 url(http://www.yoursite.com/images/bg_comments2_text.jpg) repeat-x bottom bottom;
missing space between “bottombottom”
:D
3:16 pm
Nice layouts…
5:13 pm
Thanks a lot for the information. I implemented Alternating Arrows within about 2mins. How can I change the font size or type.
Thanks again
5:11 pm
Really nice styles! I like it
2:12 pm
Hi There, Thanks for your posts about styling comments. Here is a puzzler that i’ve been going nuts trying to figure out:
What if you’d like to have the COMMENT META DATA displayed INLINE with the COMMENT like this:
[COMMENTOR NAME HERE: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum non elit dolor, non sodales justo. Donec dictum, diam a aliquet suscipit, lectus mi ultricies nunc, sit amet imperdiet urna dui eu velit. Mauris molestie, libero id eleifend pretium, tellus arcu facilisis eros, sagittis ornare enim est eu mauris. In hac habitasse platea dictumst. Vivamus vehicula DATE | TIME| TRACKBACK LINKS, etc.]
In my text its not so easy to illustrate but I’d like to have the commentor’s name inline with the actual comment. Then maybe the date/time inline on the end of the comment. I’d use CSS to set them off.
Any ideas? I’d greatly apppreciate it. Thanks.
5:53 am
tancks.
This Post Helped me
Good Time
2:37 pm
Thanks ! the speech bubble looks great !
3:01 am
great post bro, keep posting :)
4:51 pm
Great tutorial,Thanks you.
5:41 am
Now that is pretty awesome (: Thank you.
2:01 pm
Thank for great tutorial.
8:20 am
Hi do you have a code for this style for comment :
http://i789.photobucket.com/albums/yy174/crygretll/reactie.jpg
can you mail it to me?
5:49 am
谢谢了!I’m in China
7:35 pm
Great Tutorial. Thank you so much!
11:47 am
Oh! Great!!!
11:22 am
thank for share to us !
5:12 am
Cool !
just wanted to know what extension you are using for putting the code in your posts like that ?
12:54 am
Thanx
3:04 pm
very nice post
thanks
4:26 pm
Nice! Great tips
11:29 am
dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddsssssssssssssssssssssssdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
1:30 pm
Thanks for sharing mate, have a great week end!