• 全市产业扶贫现场工作推进会暨培训会召开 2019-11-10
  • 高明农家乐地图出炉 教你玩出新花样清凉乐翻天 2019-11-08
  • ——主观唯物主义哲学思想的幸福感和不幸福感就是:“幸福”就是在遵循和调正运用“客观规律和定律”的过程中满足了人的直接感觉和感受的好的结果。“不幸福”就是在遵循和 2019-11-03
  • 梅贻琦西南联大日记:午前有警报,我看书晒太阳 2019-10-28
  • 日照:一季度经济运行实现良好开局 2019-10-15
  • 让山里娃感受智慧科技乐趣 2019-10-15
  • 江西召开中央巡视“回头看”反馈意见整改情况汇报会 2019-10-07
  • 你买吗?武汉网红店遭遇黄牛扎堆 公开摆摊加价卖“不排队糕点” 2019-10-07
  • 肥西:居民楼前路面塌出大坑 面积数十平米 2019-10-02
  • 深入贯彻落实党中央治疆方略br坚定不移推进新疆社会稳定和长治久安 2019-09-23
  • 网友花样表白《人民日报》70岁生日 社长提出13个“不会忘记” 2019-09-23
  • 土豆姐姐冯小燕的新农人梦 2019-09-20
  • 斯巴鲁车系官方价格调整 最高降幅1.9万元 2019-09-20
  • 中国特色社会主义制度具有强大韧性 2019-09-19
  • 绝杀、乌龙、帽子戏法 世界杯就是这么精彩 2019-09-19
  • 重庆时时开奖结果记录 / WordPress建站 / WordPress开发 / 通过 comment_form() 自定义 WordPress 评论表单
    Loading收藏0

    重庆时时开奖结果记录 www.xw004.com WordPress 3.0 新增了comment_form() 函数来构建评论表单,下面简单讲解一下 comment_form() 的使用方法,希望能帮助大家自定义评论表单。

    调用 comment_form()

    如果你要在主题中调用评论表单,只需要在使用下面简单的代码即可:

    1
    
    <?php comment_form(); ?>

    就像我们在官方的主题 twentyfourteen 的 comments.php 文件的倒数第2行看到一样:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    
    <?php
    /**
     * The template for displaying Comments
     *
     * The area of the page that contains comments and the comment form.
     *
     * @package WordPress
     * @subpackage Twenty_Fourteen
     * @since Twenty Fourteen 1.0
     */
    /*
     * If the current post is protected by a password and the visitor has not yet
     * entered the password we will return early without loading the comments.
     */
    if ( post_password_required() ) {
    	return;
    }
    ?>
    <div id="comments" class="comments-area">
    	<?php if ( have_comments() ) : ?>
    	<h2 class="comments-title">
    		<?php
    			printf( _n( 'One thought on “%2$s”', '%1$s thoughts on “%2$s”', get_comments_number(), 'twentyfourteen' ),
    				number_format_i18n( get_comments_number() ), get_the_title() );
    		?>
    	</h2>
    	<?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : ?>
    	<nav id="comment-nav-above" class="navigation comment-navigation" role="navigation">
    		<h1 class="screen-reader-text"><?php _e( 'Comment navigation', 'twentyfourteen' ); ?></h1>
    		<div class="nav-previous"><?php previous_comments_link( __( '← Older Comments', 'twentyfourteen' ) ); ?></div>
    		<div class="nav-next"><?php next_comments_link( __( 'Newer Comments →', 'twentyfourteen' ) ); ?></div>
    	</nav><!-- #comment-nav-above -->
    	<?php endif; // Check for comment navigation. ?>
    	<ol class="comment-list">
    		<?php
    			wp_list_comments( array(
    				'style'      => 'ol',
    				'short_ping' => true,
    				'avatar_size'=> 34,
    			) );
    		?>
    	</ol><!-- .comment-list -->
    	<?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : ?>
    	<nav id="comment-nav-below" class="navigation comment-navigation" role="navigation">
    		<h1 class="screen-reader-text"><?php _e( 'Comment navigation', 'twentyfourteen' ); ?></h1>
    		<div class="nav-previous"><?php previous_comments_link( __( '← Older Comments', 'twentyfourteen' ) ); ?></div>
    		<div class="nav-next"><?php next_comments_link( __( 'Newer Comments →', 'twentyfourteen' ) ); ?></div>
    	</nav><!-- #comment-nav-below -->
    	<?php endif; // Check for comment navigation. ?>
    	<?php if ( ! comments_open() ) : ?>
    	<p class="no-comments"><?php _e( 'Comments are closed.', 'twentyfourteen' ); ?></p>
    	<?php endif; ?>
    	<?php endif; // have_comments() ?>
    	<?php comment_form(); ?>
    </div><!-- #comments -->

    comment_form() 参数

    1
    
    <?php comment_form($args, $post_id); ?>
    • $args:comment_form() 的输出配置参数,为一个关联数组,配置项非常丰富,下面我们会详细说明。
    • $post_id:文章id,默认为空,即当前id
    • $args的默认配置:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    $defaults = array(
            'fields'               => apply_filters( 'comment_form_default_fields', $fields ),
            'comment_field'        => '<p class="comment-form-comment"><label for="comment">' . _x( 'Comment', 'noun' ) . '</label><textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p>',
            'must_log_in'          => '<p class="must-log-in">' .  sprintf( __( 'You must be <a href="%s">logged in</a> to post a comment.' ), wp_login_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>',
            'logged_in_as'         => '<p class="logged-in-as">' . sprintf( __( 'Logged in as <a href="%1$s">%2$s</a>. <a href="%3$s" title="Log out of this account">Log out?</a>' ), admin_url( 'profile.php' ), $user_identity, wp_logout_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>',
            'comment_notes_before' => '<p class="comment-notes">' . __( 'Your email address will not be published.' ) . ( $req ? $required_text : '' ) . '</p>',
            'comment_notes_after'  => '<p class="form-allowed-tags">' . sprintf( __( 'You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: %s' ), ' <code>' . allowed_tags() . '</code>' ) . '</p>',
            'id_form'              => 'commentform',
            'id_submit'            => 'submit',
            'title_reply'          => __( 'Leave a Reply' ),
            'title_reply_to'       => __( 'Leave a Reply to %s' ),
            'cancel_reply_link'    => __( 'Cancel reply' ),
            'label_submit'         => __( 'Post Comment' ),
        );

    自定义评论表单

    删除表单字段

    如果我们想要删除网址字段,只需要打开主题的 functions.php 文件,添加以下代码:

    1
    2
    3
    4
    5
    6
    
    add_filter('comment_form_default_fields', 'mytheme_remove_url');
     
    function mytheme_remove_url($arg) {
        $arg['url'] = '';
        return $arg;
    }

    保存后刷新页面,你就会看到“url”输入框已经不存在了。

    新增表单字段

    假设我们要添加一个 QQ 字段,同样在主题的 functions.php 添加下面的代码即可:

    1
    2
    3
    4
    5
    6
    
    function my_fields($fields) {
    	$fields['qq'] = '<p class="comment-form-qq">' . '<label for="qq">'.__('QQ').'</label> ' .
    	'<input id="qq" name="qq" type="text" value="' . esc_attr( $commenter['comment_qq'] ) . '" size="30" /></p>';
    	return $fields;
    }
    add_filter('comment_form_default_fields','my_fields');

    刷新页面,即可看到新增的表单。

    替换默认表单字段

    代码和上面的例子差不多,如果你设置的字段为(author、email、url)其中之一,即 $fields[‘author’]、$fields[’email’]、$fields[‘url’] ,就可以替换默认的字段的输出内容。

    默认的这三个字段如下:

    1
    2
    3
    4
    5
    6
    7
    8
    
    $fields =  array(
    	'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
    	'<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
    	'email'  => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
    	'<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',
    	'url'    => '<p class="comment-form-url"><label for="url">' . __( 'Website' ) . '</label>' .
    	'<input id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>',
    	);

    comment_form() 钩子

    评论表单同时还带了不少钩子,让你可以在喜欢的位置添加你想要的内容,具体钩子如下:

    • comment_form_before
    • comment_form_must_log_in_after
    • comment_form_top
    • comment_form_logged_in_after
    • comment_notes_before
    • comment_form_before_fields
    • comment_form_field_{$name}
    • comment_form_after_fields
    • comment_form_field_comment
    • comment_form (action hook)
    • comment_form_after
    • comment_form_comments_closed

    在这里,倡萌只简单举一个小例子,在默认字段后面显示一句话,同样添加到主题的 functions.php :

    1
    2
    3
    4
    5
    6
    7
    
    function add_my_tips() {
    	echo '欢迎踊跃发言!';
    }
    // 在默认字段(前面说的姓名、邮箱和网址)的下面添加字段
    add_filter('comment_form_after_fields', 'add_my_tips');
    // 在已登录下面添加字段(因为用户登录后,是没有默认上面三个字段的),所以要使用这个钩子插入内容
    add_filter('comment_form_logged_in_after', 'add_my_tips');

    其他的就靠大家多多实践了。

    更多信息,请参考官方文档://codex.wordpress.org/Function_Reference/comment_form

    你可能还喜欢

    10 条评论

    1. 感谢讲解。我有些疑问就是,我单独处理update_comment_meta和get_comment_meta函数为什么不成功。我想通过异步方式添加评论点赞功能。但是这两个函数就是不成功

    2. ?? 很好用,最近正打算改一下WordPress自带的主题。就是不知道怎么在评论框前面把表情加上去。现在可以了。

    发表评论

    我们是靠谱的WordPress建站团队!

    专业承接WordPress网站建设及运维、WordPress主题和插件开发、汉化、安装等服务

    联系电话:189-3334-7774

    查看所有服务项目

    视频教程: 点击联系我们
    建站咨询: 点击联系我们
    广告合作: 点击联系我们

    建站咨询:189-3334-7774

    固定电话:0773-8282-430

    售后支持:133-0773-9152

    微信扫一扫,联系我们

  • 全市产业扶贫现场工作推进会暨培训会召开 2019-11-10
  • 高明农家乐地图出炉 教你玩出新花样清凉乐翻天 2019-11-08
  • ——主观唯物主义哲学思想的幸福感和不幸福感就是:“幸福”就是在遵循和调正运用“客观规律和定律”的过程中满足了人的直接感觉和感受的好的结果。“不幸福”就是在遵循和 2019-11-03
  • 梅贻琦西南联大日记:午前有警报,我看书晒太阳 2019-10-28
  • 日照:一季度经济运行实现良好开局 2019-10-15
  • 让山里娃感受智慧科技乐趣 2019-10-15
  • 江西召开中央巡视“回头看”反馈意见整改情况汇报会 2019-10-07
  • 你买吗?武汉网红店遭遇黄牛扎堆 公开摆摊加价卖“不排队糕点” 2019-10-07
  • 肥西:居民楼前路面塌出大坑 面积数十平米 2019-10-02
  • 深入贯彻落实党中央治疆方略br坚定不移推进新疆社会稳定和长治久安 2019-09-23
  • 网友花样表白《人民日报》70岁生日 社长提出13个“不会忘记” 2019-09-23
  • 土豆姐姐冯小燕的新农人梦 2019-09-20
  • 斯巴鲁车系官方价格调整 最高降幅1.9万元 2019-09-20
  • 中国特色社会主义制度具有强大韧性 2019-09-19
  • 绝杀、乌龙、帽子戏法 世界杯就是这么精彩 2019-09-19
  • 恐怖爱丽丝安卓 33选7大星走势图 排列三走势图—综合版 易网重庆老时时彩开奖 海南码开奖结果 我就是大豪门 北京十一选五开奖遗漏 幸运赛车历史开奖号码 2017年的排列三走势图 港彩一码中特免费公开 广东时时11选五开奖结果查询结果 梭哈的玩法大小排序 7星彩开奖怎么查 bg视讯是什么意思 四川体彩顶呱刮官网