因为最近换上了Hummingbird插件来缓存WordPress文章,而Hummingbird的缓存更新机制有点不科学,缓存更新的话需要全部清空了重新生成。而当有人评论后,页面不选择更新缓存的话,就不会显示出来,所以就研究上了WordPress评论框添加提示文字。
效果如下:
实现方法:
网上搜索到的给WordPress添加评论背景提示文字的方法有两种方法,大多数的文章都是使用的方法一实现,不过最近几年,尤其到了2021年了,基本上主题文件都不是以前那么写的了,所以大多数都是通过方法二实现。看你主题是哪种方式实现的。
方法一
如果你的主题comments.php 文件里面可以直接找到下面这串代码类似的
<textarea name="comment" id="comment" cols="60" rows="10" tabindex="4"></textarea>
那么直接在这串代码里面添加就可以了。
<textarea style="color:gray" onblur="if (this.value == ”) {this.value = ‘我坚信,评论可以一针见血!’;} " onfocus="if (this.value == ‘我坚信,评论可以一针见血!’) {this.value = ”;}" name="comment" id="comment" cols="60" rows="10" tabindex="4">我坚信,评论可以一针见血!</textarea>
方法二
如果你的主题评论文件里面看不到上面这串<textarea name=”comment”的代码,那么就找下面这串代码
<?php comment_form(); ?>
然后把上面的代码替换成下面这串代码就可以实现效果了。
<?php comment_form( array( 'comment_field' => '<textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required="required" placeholder="评论需审核,评论有缓存…"></textarea>', ) ); ?>
cols=”45″ rows=”8″ maxlength=”65525″这串代码,你可以查看你主题默认前台显示的是哪种,然后替换成主题的代码。
默认评论区域代码
$fields = array( 'author' => '<p class="comment-form-author"><label for="author">' . __( 'Name', 'domainreference' ) . ( $req ? '<span class="required">*</span>' : '' ) . '</label>' . '<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', 'domainreference' ) . ( $req ? '<span class="required">*</span>' : '' ) . '</label>' . '<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', 'domainreference' ) . '</label>' . '<input id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>', );
从4.9.6开始,如果“显示评论cookie选择加入复选框”。在“讨论设置”中选中,cookie同意复选框将添加到区域中。
$fields['cookies'] = '<p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes"' . $consent . ' />' . '<label for="wp-comment-cookies-consent">' . __( 'Save my name, email, and website in this browser for the next time I comment.' ) . '</label></p>';
注意:要在自定义回调函数中使用上述代码中的变量,必须首先使用以下内容在回调中设置这些变量:
$commenter = wp_get_current_commenter(); $req = get_option( 'require_name_email' ); $aria_req = ( $req ? " aria-required='true'" : '' ); $consent = empty( $commenter['comment_author_email'] ) ? '' : ' checked="checked"';
本文参照了以下文章: