Avatar แบบไม่ต้อง plugin
Written by Waipot on April 10, 2008 – 8:50 amเพิ่งได้รู้จากคอมเมนต์ของคุณ Kamthorn ใน ประเด็นเรื่อง WordPress ว่า WordPress 2.5 นี้สนับสนุน Avatar มาในตัว แต่โชคร้ายที่ theme ที่ผมใช้อยู่ มันไม่ได้สนับสนุนฟังค์ชันนี้ ผมเลยต้องจัดการแก้ไฟล์เอาเอง เลยอยากจะเขียนไว้ เผื่อเป็นประโยชน์ในภายหน้า
เราสามารถปรับแต่งการใช้งาน Avatar ใน WordPress นี้ โดยไปที่ Settings->Discussion ใน Dashboard ซึ่งจะเจอตามรูปนี้
โดยปริยาย มันจะใช้บริการของ Gravatar (globally recognized avatar)
เราสามารถเรียกใช้ Gratavar นี้ได้ใน theme โดยใช้ฟังค์ชัน
function get_avatar( $id_or_email, $size = '64', $default = '' )
โดยฟังชันนี้จะ return ค่าเป็น <img> ที่ลิงค์ไปยังรูป avatar ที่เราได้สมัครไว้กับ Gravatar ค่าตัวแปรที่จะส่งให้ฟังค์ชันนี้ ตรง $id_or_email นั้นใน WordPress 2.5 นี้ สามารถรับ comments ออบเจคต์ได้ ทำให้สะดวกที่จะเรียกใช้ฟังค์นี้ที่ loop ใน comments.php ยกตัวอย่างเช่น ในกรณีของผมเป็น
<?php foreach ($comments as $comment) : ?> <li class="<?php echo $oddcomment; ?>" id="comment-<?php comment_ID() ?>"> <?php echo get_avatar( $comment, 64 ); ?> ...
นอกจากนี้เรายังสามารถจัดตำแหน่งได้โดยใช้ CSS เช่น
<span style="float:right; margin-left:10px; display:block;"> <?php echo get_avatar( $comment, 64 ); ?> </span>
หลักการทำงานของฟังค์ชันนี้ คือ มันจะตามหา Avatar ของเราใน service ของ Gravatar จาก e-mail address ใน $comment ออบเจคต์ ดูตัวอย่างที่ฟังค์ชันนี้ return ค่า (<img>) ออกมา
<img class="avatar avatar-64" src="http://www.gravatar.com/avatar/d2ccd9adc57d24cc4cf8c0eef03f5bc3?s=64&d=http%3A%2F%2Fwww.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&r=X" alt="" width="64" height="64" />
ผลลัพธ์คือ เราจะสามารถแสดง icon เล็กๆ ที่เป็นตัวแทนของเราในคอมเมนต์ที่เราได้โพสต์ตามบลอกต่างๆ ผมว่าเก๋ไก๋ทีเดียว (ลองดูตามคอมเมนต์ต่างๆ ของบลอกผมก็ได้) และถ้าผู้ชมท่านไหนไม่มี Avatar มันก็จะแสดงรูป default ออกมา คือ
ผมชอบ Avatar มากๆ เพราะมันเหมือนเป็นตัวแทนของเราในโลก Virtual นอกจากนี้ถ้ามันรวมเข้ากับระบบระบุตัวตน OpenID แล้ว มันจะใช้เป็นตัวแทนของเราได้ดียิ่งขึ้น อย่างเช่นใน openvatars (Openid avatar system) น่าสนใจมากทีเดียว แต่น่าเสียดายที่ระบบยังอยู่ในขั้นทดสอบอยู่ (Alpha testing)
อ้างอิง
Posted under Internet and Cyberspace | 2 Comments »
Subscribe to my blog using RSS