WordPress主題制作全過程(十):制作comments.php

    Wordpress主題開發之評論模板:comments.php

    來源于:

    http://www.shouce.ren/post/view/id/3305

    新建comments.php,復制以下代碼,粘貼到comments.php

    ?<!– Comments List –>
    ? ??<h3>Comments</h3>
    ? ??<div?class="hr dotted clearfix">&nbsp;</div>
    ? ??<ol?class="commentlist">
    ? ? ? ??<li?class="comment">
    ? ? ? ? ? ??<div?class="gravatar">?<img?alt=""?src=’images/gravatar.png’?height=’48′?width=’48′?/>?<a?class="comment-reply-link"?href=&quot;>Reply</a>?</div>
    ? ? ? ? ? ??<div?class="comment_content">
    ? ? ? ? ? ? ? ??<div?class="clearfix">?<cite?class="author_name"><a?href="">Joe Bloggs</a></cite>
    ? ? ? ? ? ? ? ? ? ??<div?class="comment-meta commentmetadata">January 6, 2010 at 6:26 am</div>
    ? ? ? ? ? ? ? ??</div>
    ? ? ? ? ? ? ? ??<div?class="comment_text">
    ? ? ? ? ? ? ? ? ? ??<p>Donec leo. Aliquam risus elit, luctus vel, interdum vitae, malesuada eget, elit. Nulla vitae ipsum. Donec ligula ante, bibendum sit amet, elementum quis, viverra eu, ante. Fusce tincidunt. Mauris pellentesque, arcu eget feugiat accumsan, ipsum mi molestie orci, ut pulvinar sapien lorem nec dui.</p>
    ? ? ? ? ? ? ? ??</div>
    ? ? ? ? ? ??</div>
    ? ? ? ??</li>
    ? ??</ol>
    ? ??<div?class="hr clearfix">&nbsp;</div>
    ? ??<!– Comment Form –>
    ? ??<form?id="comment_form"?action=""?method="post">
    ? ? ? ??<h3>Add a comment</h3>
    ? ? ? ??<div?class="hr dotted clearfix">&nbsp;</div>
    ? ? ? ??<ul>
    ? ? ? ? ? ??<li?class="clearfix">
    ? ? ? ? ? ? ? ??<label?for="name">Your Name</label>
    ? ? ? ? ? ? ? ??<input?id="name"?name="name"?type="text"?/>
    ? ? ? ? ? ??</li>
    ? ? ? ? ? ??<li?class="clearfix">
    ? ? ? ? ? ? ? ??<label?for="email">Your Email</label>
    ? ? ? ? ? ? ? ??<input?id="email"?name="email"?type="text"?/>
    ? ? ? ? ? ??</li>
    ? ? ? ? ? ??<li?class="clearfix">
    ? ? ? ? ? ? ? ??<label?for="email">Your Website</label>
    ? ? ? ? ? ? ? ??<input?id="website"?name="website"?type="text"?/>
    ? ? ? ? ? ??</li>
    ? ? ? ? ? ??<li?class="clearfix">
    ? ? ? ? ? ? ? ??<label?for="message">Comment</label>
    ? ? ? ? ? ? ? ??<textarea?id="message"?name="message"?rows="3"?cols="40"></textarea>
    ? ? ? ? ? ??</li>
    ? ? ? ? ? ??<li?class="clearfix">
    ? ? ? ? ? ??<!– Add Comment Button –>
    ? ? ? ? ? ??<a?type="submit"?class="button medium black right">Add comment</a>?</li>
    ? ? ? ??</ul>
    ? ??</form>
    

    在single.php需要顯示評論的位置添加以下代碼:

    <?php?comments_template();??>
    

    以上語句的作用就是將comments.php里的所有內容導入到single.php中,與直接在single.php寫comments.php中的代碼效果是一樣的。

    為了安全起見,不讓惡意用戶直接打開評論文件,請在comments.php頭部添加以下代碼:

    <?php
    ? ??if?(isset($_SERVER['SCRIPT_FILENAME'])?&&?'comments.php'?==?basename($_SERVER['SCRIPT_FILENAME']))
    ? ? ? ??die?('Please do not load this page directly. Thanks!');
    ?>
    

    因為WordPress的輸出評論函數wp_list_comments()輸出的評論代碼與我們主題的評論代碼不一樣的,我們得自定義我們的評論列表,將comments.php中的以下代碼刪除(以下代碼用于列出文章的所有評論):

    <li?class="comment">
    ? ??<div?class="gravatar">?<img?alt=""?src=’images/gravatar.png’?height=’48′?width=’48′?/>?<a?class="comment-reply-link"?href=&quot;>Reply</a>?</div>
    ? ??<div?class="comment_content">
    ? ? ? ??<div?class="clearfix">?<cite?class="author_name"><a?href="">Joe Bloggs</a></cite>
    ? ? ? ? ? ??<div?class="comment-meta commentmetadata">January 6, 2010 at 6:26 am</div>
    ? ? ? ??</div>
    ? ? ? ??<div?class="comment_text">
    ? ? ? ??<p>Donec leo. Aliquam risus elit, luctus vel, interdum vitae, malesuada eget, elit. Nulla vitae ipsum. Donec ligul? a ante, bibendum sit amet, elementum quis, viverra eu, ante. Fusce tincidunt. Mauris pellentesque, arcu eget feugiat accumsan, ipsum mi molestie orci, ut pulvinar sapien lorem nec dui.</p>
    ? ? ? ??</div>
    ? ??</div>
    </li>
    

    改成:

    ?<?php?
    ? ??if?(!empty($post->post_password)?&&?$_COOKIE['wp-postpass_'?.?COOKIEHASH]?!=?$post->post_password)?{?
    ? ? ? ??// if there's a password
    ? ? ? ??// and it doesn't match the cookie
    ? ???>
    ? ? <li class="decmt-box">
    ? ? ? ? <p><a href="#addcomment">請輸入密碼再查看評論內容.</a></p>
    ? ? </li>
    ? ??<?php?
    ? ? ? ??}?else?if?(?!comments_open()?)?{
    ? ???>
    ? ? <li class="decmt-box">
    ? ? ? ? <p><a href="#addcomment">評論功能已經關閉!</a></p>
    ? ? </li>
    ? ??<?php?
    ? ? ? ??}?else?if?(?!have_comments()?)?{?
    ? ???>
    ? ? <li class="decmt-box">
    ? ? ? ? <p><a href="#addcomment">還沒有任何評論,你來說兩句吧</a></p>
    ? ? </li>
    ? ??<?php?
    ? ? ? ??}?else?{
    ? ? ? ? ? ? wp_list_comments('type=comment&callback=aurelius_comment');
    ? ? ? ??}
    ? ???>
    

    以上代碼的意思大致也可以看得出來了,就是一大堆? 如果…就…. ,如果以上條件都不滿足就列出所有評論。

    在functions.php中添加以下代碼:

    function aurelius_comment($comment, $args, $depth)?
    {
    ? ?$GLOBALS['comment'] = $comment; ?>
    ? ?<li class="comment" id="li-comment-<?php?comment_ID();??>">
    ? ? ? ? <div class="gravatar">?<?php?if?(function_exists('get_avatar')?&&?get_option('show_avatars'))?{?echo?get_avatar($comment,?48);?}??>
    ?<?php?comment_reply_link(array_merge(?$args,?array('reply_text'?=>?'回復','depth'?=>?$depth,?'max_depth'?=>?$args['max_depth'])))??>?</div>
    ? ? ? ? <div class="comment_content" id="comment-<?php?comment_ID();??>"> ??
    ? ? ? ? ? ? <div class="clearfix">
    ? ? ? ? ? ? ? ? ? ??<?php?printf(__('<cite class="author_name">%s</cite>'),?get_comment_author_link());??>
    ? ? ? ? ? ? ? ? ? ? <div class="comment-meta commentmetadata">發表于:<?php?echo?get_comment_time('Y-m-d H:i');??></div>
    ? ? ? ? ? ? ? ? ? ? &nbsp;&nbsp;&nbsp;<?php?edit_comment_link('修改');??>
    ? ? ? ? ? ? </div>
    
    ? ? ? ? ? ? <div class="comment_text">
    ? ? ? ? ? ? ? ??<?php?if?($comment->comment_approved?==?'0')?:??>
    ? ? ? ? ? ? ? ? ? ? <em>你的評論正在審核,稍后會顯示出來!</em><br />
    ? ? ? ??<?php?endif;??>
    ? ? ? ??<?php?comment_text();??>
    ? ? ? ? ? ? </div>
    ? ? ? ? </div>
    ? ? </li>
    <?php?}??>
    

    以上代碼所用到的WordPress函數及相應的說明:

    函數名稱 函數功能
    get_avatar($comment, 48) 獲取評論者的gravatar頭像,尺寸為48 * 48
    comment_reply_link() 回復留言的鏈接
    get_comment_author_link 用于獲取評論者博客地址
    get_comment_time 獲取評論發布時間
    edit_comment_link 管理員修改評論的鏈接
    comment_text() 輸出評論內容

    ?好,現在在你的文章頁面底部就可以正常地顯示評論了!現在我們繼續來制作提交評論的表單,將以下代碼刪除(也就是評論表單的代碼):

    <!– Comment Form –>
    <form?id="comment_form"?action=""?method="post">
    ? ??<h3>Add a comment</h3>
    ? ??<div?class="hr dotted clearfix">&nbsp;</div>
    ? ??<ul>
    ? ? ? ??<li?class="clearfix">
    ? ? ? ? ? ??<label?for="name">Your Name</label>
    ? ? ? ? ? ??<input?id="name"?name="name"?type="text"?/>
    ? ? ? ??</li>
    ? ? ? ??<li?class="clearfix">
    ? ? ? ? ? ??<label?for="email">Your Email</label>
    ? ? ? ? ? ??<input?id="email"?name="email"?type="text"?/>
    ? ? ? ??</li>
    ? ? ? ??<li?class="clearfix">
    ? ? ? ? ? ??<label?for="email">Your Website</label>
    ? ? ? ? ? ??<input?id="website"?name="website"?type="text"?/>
    ? ? ? ??</li>
    ? ? ? ??<li?class="clearfix">
    ? ? ? ? ? ??<label?for="message">Comment</label>
    ? ? ? ? ? ??<textarea?id="message"?name="message"?rows="3"?cols="40"></textarea>
    ? ? ? ??</li>
    ? ? ? ??<li?class="clearfix">
    ? ? ? ? ? ??<!– Add Comment Button –>
    ? ? ? ? ? ??<a?type="submit"?class="button medium black right">Add comment</a>?</li>
    ? ??</ul>
    </form>
    

    改成:

    <?php?
    if?(?!comments_open()?)?:
    // If registration required and not logged in.
    elseif?(?get_option('comment_registration')?&&?!is_user_logged_in()?)?:?
    ?>
    <p>你必須 <a href="<?php?echo?wp_login_url(?get_permalink()?);??>">登錄</a> 才能發表評論.</p>
    <?php?else??:??>
    <!-- Comment Form -->
    <form id="commentform" name="commentform" action="<?php?echo?get_option('siteurl');??>/wp-comments-post.php" method="post">
    ? ? <h3>發表評論</h3>
    ? ? <div class="hr dotted clearfix">&nbsp;</div>
    ? ? <ul>
    ? ? ? ??<?php?if?(?!is_user_logged_in()?)?:??>
    ? ? ? ? <li class="clearfix">
    ? ? ? ? ? ? <label for="name">昵稱</label>
    ? ? ? ? ? ? <input type="text" name="author" id="author" value="<?php?echo?$comment_author;??>" size="23" tabindex="1" />
    ? ? ? ? </li>
    ? ? ? ? <li class="clearfix">
    ? ? ? ? ? ? <label for="email">電子郵件</label>
    ? ? ? ? ? ? <input type="text" name="email" id="email" value="<?php?echo?$comment_author_email;??>" size="23" tabindex="2" />
    ? ? ? ? </li>
    ? ? ? ? <li class="clearfix">
    ? ? ? ? ? ? <label for="email">網址(選填)</label>
    ? ? ? ? ? ? <input type="text" name="url" id="url" value="<?php?echo?$comment_author_url;??>" size="23" tabindex="3" />
    ? ? ? ? </li>
    ? ? ? ??<?php?else?:??>
    ? ? ? ? <li class="clearfix">您已登錄:<a href="<?php?echo?get_option('siteurl');??>/wp-admin/profile.php"><?php?echo?$user_identity;??></a>. <a href="<?php?echo?wp_logout_url(get_permalink());??>" title="退出登錄">退出 &raquo;</a></li>
    ? ? ? ??<?php?endif;??>
    ? ? ? ? <li class="clearfix">
    ? ? ? ? ? ? <label for="message">評論內容</label>
    ? ? ? ? ? ? <textarea id="message comment" name="comment" tabindex="4" rows="3" cols="40"></textarea>
    ? ? ? ? </li>
    ? ? ? ? <li class="clearfix">
    ? ? ? ? ? ? <!-- Add Comment Button -->
    ? ? ? ? ? ? <a href="javascript:void(0);" onClick="Javascript:document.forms['commentform'].submit()" class="button medium black right">發表評論</a> </li>
    ? ? </ul>
    ? ??<?php?comment_id_fields();??>
    ? ??<?php?do_action('comment_form',?$post->ID);??>
    </form>
    <?php?endif;??>
    
    函數名稱 函數功能
    is_user_logged_in 判斷用戶是否登錄
    wp_login_url 博客登錄地址
    get_comment_author_link 用于獲取評論者博客地址
    $comment_author 讀取cookie,如果該用戶之前已經發表過評論則自動幫助用戶填寫用戶名
    $comment_author_email 讀取cookie,如果該用戶之前已經發表過評論則自動幫助用戶填寫Email
    $comment_author_url 讀取cookie,如果該用戶之前已經發表過評論則自動幫助用戶填寫博客地址
    do_action(‘comment_form’, $post->ID); 該函數為某些插件預留
    wp_logout_url 退出登錄的鏈接

    好了,評論模板comments.php制作完畢!

    類似下面這樣:

    WordPress主題制作全過程(十):制作comments.php

    再自己美化美化即可。

    給TA贊賞
    共{{data.count}}人
    人已贊賞
    ??
    Npcink上的部份代碼及教程來源于互聯網,僅供網友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
    無意侵害您的權益,請發送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
    ?
    購物車
    優惠劵
    搜索
    主站蜘蛛池模板: 国产成人亚洲综合一区| 亚洲一区二区三区无码影院| 夜夜高潮夜夜爽夜夜爱爱一区| 精品无码一区二区三区水蜜桃| 久久无码一区二区三区少妇| 亚洲丶国产丶欧美一区二区三区| 中文字幕AV一区中文字幕天堂| 日本精品3d动漫一区二区| 亚洲国产国产综合一区首页| 久夜色精品国产一区二区三区| 午夜DV内射一区区| 国产福利酱国产一区二区| 亚洲狠狠久久综合一区77777| 国产精品一区二区三区99| 国产一区风间由美在线观看| 国产女人乱人伦精品一区二区 | 文中字幕一区二区三区视频播放 | 久久精品一区二区三区中文字幕 | 少妇激情一区二区三区视频| 国产成人精品一区二区三区| 精品综合一区二区三区| 一区二区三区视频免费观看| 欧美激情国产精品视频一区二区| 国产一区在线mmai| 无码乱码av天堂一区二区| 久久精品成人一区二区三区| 国产Av一区二区精品久久| 国产伦精品一区二区三区免费迷 | 亚洲一区在线观看视频| 成人免费一区二区无码视频 | 日韩精品一区二区三区国语自制 | 日韩高清一区二区三区不卡| 精品欧美一区二区在线观看| 精品国产一区二区三区免费看| 亚洲欧美国产国产综合一区| 国产日韩综合一区二区性色AV| 国产福利电影一区二区三区久久老子无码午夜伦不 | 亚州国产AV一区二区三区伊在| 精彩视频一区二区| 色婷婷亚洲一区二区三区| 日韩人妻一区二区三区免费|