站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

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

        前面給大家介紹了《WordPress主題制作全過程(九):制作single.php》,本文繼續(xù)給大家介紹如何制作comments.php,下面一起來看一下吧~

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

        php入門到就業(yè)線上教程:進(jìn)入學(xué)習(xí)

        今天我們來制作評論主題的評論模塊。在主題目錄Aurelius下新建comments.php,在single.php剪切以下代碼,粘貼到comments.php:

        <!– Comment’s List –> <h3>Comments</h3> <div class="hr dotted clearfix"> </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=">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"> </div> <!– Comment Form –> <form id="comment_form" action="" method="post"> <h3>Add a comment</h3> <div class="hr dotted clearfix"> </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>
        登錄后復(fù)制

        在single.php原位置添加代碼:

        <?php comments_template(); ?>
        登錄后復(fù)制

        以上語句的作用就是將comments.php里的所有內(nèi)容導(dǎo)入到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!'); ?>
        登錄后復(fù)制

        因為WordPress的輸出評論函數(shù)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=">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>
        登錄后復(fù)制

        改成:

        <?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">請輸入密碼再查看評論內(nèi)容.</a></p>     </li>     <?php          } else if ( !comments_open() ) {     ?>     <li class="decmt-box">         <p><a href="#addcomment">評論功能已經(jīng)關(guān)閉!</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');         }     ?>
        登錄后復(fù)制

        以上代碼的意思大致也可以看得出來了,就是一大堆 如果…就….,如果以上條件都不滿足就列出所有評論?,F(xiàn)在將主題文件夾Aurelius中的functions.php中的 ?> ,改成以下代碼,如果你之前從本博客下載到的functions.php已經(jīng)有以下代碼則不用再添加:

        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' => '回復(fù)','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">發(fā)表于:<?php echo get_comment_time('Y-m-d H:i'); ?></div>    <?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> <?php } ?>
        登錄后復(fù)制

        以上代碼所用到的WordPress函數(shù)及相應(yīng)的說明:

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

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

        <!– Comment Form –> <form id="comment_form" action="" method="post"> <h3>Add a comment</h3> <div class="hr dotted clearfix"> </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>
        登錄后復(fù)制

        改成:

        <?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> 才能發(fā)表評論.</p> <?php else  : ?> <!-- Comment Form --> <form id="commentform" name="commentform" action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post">     <h3>發(fā)表評論</h3>     <div class="hr dotted clearfix"> </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">網(wǎng)址(選填)</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="退出登錄">退出 ?</a></li>         <?php endif; ?>         <li class="clearfix">             <label for="message">評論內(nèi)容</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">發(fā)表評論</a> </li>     </ul>     <?php comment_id_fields(); ?>     <?php do_action('comment_form', $post->ID); ?> </form> <?php endif; ?>
        登錄后復(fù)制

        函數(shù)名稱 函數(shù)功能
        is_user_logged_in 判斷用戶是否登錄
        wp_login_url 博客登錄地址
        get_comment_author_link 用于獲取評論者博客地址
        $comment_author 讀取cookie,如果該用戶之前已經(jīng)發(fā)表過評論則自動幫助用戶填寫用戶名
        $comment_author_email 讀取cookie,如果該用戶之前已經(jīng)發(fā)表過評論則自動幫助用戶填寫Email
        $comment_author_url 讀取cookie,如果該用戶之前已經(jīng)發(fā)表過評論則自動幫助用戶填寫博客地址
        do_action('comment_form', $post->ID); 該函數(shù)為某些插件預(yù)留
        wp_logout_url 退出登錄的鏈接

        推薦學(xué)習(xí):《WordPress教程》

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 久久精品国产亚洲Aⅴ蜜臀色欲| 亚洲A∨精品一区二区三区| 国产成人1024精品免费| 久久久久女人精品毛片| 久久国产综合精品五月天| 久久97精品久久久久久久不卡| 久久精品蜜芽亚洲国产AV| 亚洲午夜精品久久久久久app | 四虎国产精品成人免费久久| 91精品国产91久久久久久| 国产成人久久精品区一区二区| 人人妻人人澡人人爽人人精品97| 亚洲精品专区在线观看| 久久久99精品一区二区| 国产精品亚洲αv天堂无码| 99热日韩这里只有精品| 日本一区精品久久久久影院| 996久久国产精品线观看| 国产精品拍天天在线| 久久精品人人做人人爽电影蜜月| 亚洲午夜精品久久久久久浪潮| 日韩精品在线播放| 欧美精品区一级片免费播放| 久久精品国产99久久丝袜| 黑人无码精品又粗又大又长| 国产精品福利区一区二区三区四区| 91精品国产色综久久| 国产精品国产三级在线高清观看| 91久久精品无码一区二区毛片| 亚洲国产综合91精品麻豆| 91麻豆精品一二三区在线| 国产精品青草视频免费播放| 国产精品热久久毛片| 国产区精品高清在线观看 | 亚洲线精品一区二区三区 | 久久精品国产精品亚洲艾草网美妙| 国产欧美日本亚洲精品一5| 久久精品成人| 亚洲情侣偷拍精品| 亚洲AV永久无码精品成人| 久久精品午夜一区二区福利|