wordpress CMS主题 微信
  • 全部教程
  • Home > wordpress CMS主题制作 > 制作wordpress主题教程(10):comments.php评论文件

    制作wordpress主题教程(10):comments.php评论文件

    高时银博客 wordpress CMS主题制作 点击: 4,340 次 0 0

    前文我们制作好了文章页文件single.php,哪果不想让别人评论我们的文章,只想展示文章,那么,single.php文件就是制作完成了。但是,作网站的总还是想让别人对自己的文章观点做一些评论和看法,所以,评论这一块还是少不掉的。本章,我们就一起为wanlimm主题的文章添加一个评论模块comments.php

    首先,在wanlimm主题文件夹下创建一个comments.php文件,然后通过dreamweaver打开它。为了防止某些恶意用户直接打开评论文件,我们在comments.php的头部添加代码:

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

    然后,再添加评论列表代码,如下:

    <?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');
    }
    ?>

    上面代码意思是,评论列表在“评论需要密码才能查看、评论已经关闭、还没有评论以及正常显示”这几个情况会有不同的输出。上面的wp_list_comments函数中我们家里两个参数,其中type=comment意思只输出评论,除了评论还有pings\trackback\ pingback等等什么的,callback=aurelius_comment意思是调用一个自定义的函数函数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 } ?>

    添加了上面的代码评论已经能正确显示了,但是没有人评论,哪来的评论列表,也就是说我们要让别人来评论,我们要添加一个让别评论的评论的表单。这点我们不需要再手动输入每个表单项了,wordprss提供了一个非常方便的函数——comment_form(),将下面的代码复制到comments.php文件中:

    <?php if ( comments_open() ) : ?>

    <?php if ( get_option('comment_registration') && !$user_ID ) : ?>
    <p><?php printf(__('你需要先 <a href="%s">登录</a> 才能发表评论.'), get_option('siteurl')."/wp-login.php?redirect_to=".urlencode(get_permalink()));?></p>
    <?php else : ?>

    <?php $defaults = array(
    'comment_notes_before' => '',
    'label_submit' => __( '提交评论' ),
    'comment_notes_after' =>''
    );
    comment_form($defaults);
    endif;
    else : ?>
    <p><?php _e('对不起评论已经关闭.'); ?></p>
    <?php endif; ?>

    上面代码也添加了判断,判断是否允许评论、是否需要登录才能评论。好了,到这里,一个基础的评论模块就制作完成了。但是,这个评论模块如何与文章页面挂勾呢?也就是,如何在文章添加这个评论模块?这个很简单,在single.php文件的循环外,也就是在<?php endif; ?>后台添加评论调用函数,如下:

    <?php comments_template(); ?>

    这个comments_template()函数默认是加载主题文件夹下面的comments.php文件,这个函数也是可以带参数的,也就是说,可以通过参数来调用其它的评论模板,嗯,这里不做详说,感兴趣的,可以参阅本站该函数的详细解说。


    文章作者:高时银博客
    本文地址:http://wanlimm.com/77201505264102.html
    版权所有 © 转载时必须以链接形式注明作者和原始出处!

    1个评论 来自 “制作wordpress主题教程(10):comments.php评论文件”

    1. 马行行个人博客 回复 | 引用 Post:2017-01-26 at 16:21

      博主写的非常清晰明了,代码解释的很清楚,谢谢分享

    发表评论