鹿泽鹿泽  2024-07-16 16:01:46 鹿泽笔记 隐藏边栏  0 

正常情况下,我们的wordpress的评论里,一般只有邮箱,网站,用户名,是没有电话、QQ之类的,但可能有一些朋友,需要在wordpress文章评论表单新增电话、QQ字段,这样的话,发表评论的朋友,需要填写的信息更多。

WordPress的强大已经到了只有想不到,没有做不到的,wordpress默认文章评论表单分别是昵称、邮箱、网址以及评论内容,这只能够满足普通博客网站的需求,如何增加更多的评论字段?我们可以使用wordpress评论自定义字段实现,有点像文章的自定义字段功能,对应数据库表就是wp_commentmeta,和文章的postmeta数据表差不多。

需要注意的是,本教程不适合使用comment_form()函数的wordpress主题。

1、找到主题的comments。php文件并对其进行编辑,在输入邮箱的字段代码下面添加以下代码:

<p>
    <label for="tel">
        电话
    </label>
    <input type="text" name="tel" class="text" id="tel" value="<?php echo get_comment_meta($comment->comment_ID,'tel',true); ?>"
    tabindex="3" />
</p>
<p>
    <label for="qq">
        QQ号
    </label>
    <input type="text" name="qq" class="text" id="qq" value="<?php echo get_comment_meta($comment->comment_ID,'qq',true); ?>"
    tabindex="4" />
</p>

2、在主题的functions.php文件的第一行<?php下面添加代码:

add_action('wp_insert_comment','wp_insert_tel',10,2);
function wp_insert_tel($comment_ID,$commmentdata) {
	$tel = isset($_POST['tel']) ? $_POST['tel'] : false;
	$qq = isset($_POST['qq']) ? $_POST['qq'] : false;
	update_comment_meta($comment_ID,'tel',$tel);
	//tel 是存储在数据库里的字段名字 update_comment_meta($comment_ID,'qq',$qq);//qq 是存储在数据库里的字段名字}

add_action()参数中的10和2分别表示该函数执行的优先级是10(默认值,值越小优先级越高),该函数接受2个参数。

3、在后台——评论中的列表里显示添加的字段,接着第二步的代码继续添加以下代码:

add_filter( 'manage_edit-comments_columns', 'my_comments_columns' );
add_action( 'manage_comments_custom_column', 'output_my_comments_columns', 10, 2 );
function my_comments_columns( $columns ) {
	$columns[ 'tel' ] = __( '电话' );
	//电话是代表列的名字
	$columns[ 'qq' ] = __( 'QQ号' );
	//QQ号是代表列的名字 
	return $columns;
}
function output_my_comments_columns( $column_name, $comment_id ) {
	switch( $column_name ) {
		case "tel" : echo get_comment_meta( $comment_id, 'tel', true );
		break;
		case "qq" : echo get_comment_meta( $comment_id, 'qq', true );
		break;
	}
}

保存后,在后台评论列表中就会看到添加的电话和QQ号了。

1、文章版权归作者所有,未经允许请勿转载。
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们邮箱:526009505@qq.com进行处理。
3、咨询请联系QQ:526009505