我在Wordpress中设置的是留言者必须填写昵称和邮箱,填昵称是帮助留言者进入读者墙排行,填邮箱则是为了方便通知留言者是否有新回复。但是很快就发现每次读者留言都要填一遍用户名和邮箱,实在是很麻烦,大大降低了读者留言的积极性。因此需要一个功能,通过调用浏览器中COOKIE的记录,一旦判断出该读者曾经留过言,那么直接省去填写读者信息的流程。

经过不懈的努力,一次又一次的实验,总算把这个问题解决了。大家可以留言测试,应该没什么问题。

修改之前我的评论界面如下:

对应的代码是:
<p><label>Name<?php if ($req) { ?> (必填)<?php } ?></label>
<input type="text" name="author" id="author" size="22" tabindex="1" /></p>

<p><label>Email<?php if ($req) { ?> (必填,但不会公开)<?php } ?></label>
<input type="text" name="email" id="email" size="22" tabindex="2" /></p>

<p><label>Website(选填)</label>
<input type="text" name="url" id="url" size="22" tabindex="3" /></p>

修改之后的代码如下:
        
<p><label>Name<?php if ($req) { ?> (必填)<?php } ?></label>
<input type="text" name="author" id="commentauthor" tabindex="1" value="<?php if ( !empty($comment_author) ) { echo esc_attr($comment_author); } else { echo ''; } ?>" onfocus="if (this.value == '<?php _e('Name (required)'); ?>') {this.value = '';}" onblur="if (this.value == '') {this.value = '<?php _e('Name (required)'); ?>';}" />
</p>

<p><label>Email<?php if ($req) { ?> (必填,但不会公开)<?php } ?></label>
<input type="text" name="email" id="email" tabindex="2" value="<?php if ( !empty($comment_author_email) ) { echo esc_attr($comment_author_email); } else { echo ''; } ?>" onfocus="if (this.value == '<?php _e('Email (required)'); ?>') {this.value = '';}" onblur="if (this.value == '') {this.value = '<?php _e('Email (required)'); ?>';}" />
</p>

<p><label>Website<?php if ($req) { ?> (选填)<?php } ?></label>
<input type="text" name="url" id="url" tabindex="3" value="<?php if (!empty($comment_author_url)) { echo esc_attr($comment_author_url); } else { _e(''); } ?>" onfocus="if (this.value == '<?php _e(''); ?>') {this.value = '';}" onblur="if (this.value == '') {this.value = '<?php _e(''); ?>';}" />
</p>