欢迎光临
小清新博客

wordpress添加QQ获取用户名、邮箱、头像

最近倒腾了一下匿名评论,添加了QQ号码获取用户名、邮箱、头像,下面通过简单的代码集成到DUX主题上,其他主题可以看代码注释,不懂的可以在留言区留言。

1,先把一下的代码添加到主题的 function.php

//添加QQ号码字段
 add_action('wp_insert_comment','inlojv_sql_insert_qq_field',10,2);
 function inlojv_sql_insert_qq_field($comment_ID,$commmentdata) {
 $qq = isset($_POST['new_field_qq']) ? $_POST['new_field_qq'] : false;
 update_comment_meta($comment_ID,'new_field_qq',$qq); // new_field_qq 是表单name值,也是存储在数据库里的字段名字
 }
 // 后台评论中显示qq字段
 add_filter( 'manage_edit-comments_columns', 'add_comments_columns' );
 add_action( 'manage_comments_custom_column', 'output_comments_qq_columns', 10, 2 );
 function add_comments_columns( $columns ){
 $columns[ 'new_field_qq' ] = __( 'QQ号' ); // 新增列名称
 return $columns;
 }
 function output_comments_qq_columns( $column_name, $comment_id ){
 switch( $column_name ) {
 case "new_field_qq" :
 // 这是输出值,可以拿来在前端输出,这里已经在钩子manage_comments_custom_column上输出了
 echo get_comment_meta( $comment_id, 'new_field_qq', true );
 break;
 }
 }

//留言板获取QQ头像
 add_filter( 'get_avatar', 'inlojv_change_avatar', 10, 3 );
 function inlojv_change_avatar($avatar){
 global $comment;
 if( get_comment_meta( $comment->comment_ID, 'new_field_qq', true ) ){
 $qq_number = get_comment_meta( $comment->comment_ID, 'new_field_qq', true );
 $qqavatar = file_get_contents('http://ptlogin2.qq.com/getface?appid=1006102&imgtype=3&uin='.$qq_number);
 preg_match('/https:(.*?)&t/',$qqavatar,$m); // 匹配 http: 和 &t 之间的字符串
 return '<img src="'.stripslashes($m[1]).'" class="avatar avatar-40 photo" alt="qq_avatar" />';
 }else{
 return $avatar ;
 }
 }

2、下载get_qqinfo.php的文件保存到DUX的modules文件夹内,作为获取API的文件。

文件下载

  文件名称:get_qqinfo.zip  文件大小:613B
  下载声明:本站文件大多收集于互联网,如有版权问题,请联系博主及时删除!
  下载地址:get_qqinfo.zip

3、把下面的代码放到主题的JS文件里,可以是commen.js也 可以是main.js。

// 初始化
$(function(){
 inlojv_js_getqqinfo();
});
// 设置cookie 
function setCookie(a,c){var b=30;var d=new Date();d.setTime(d.getTime()+b*24*60*60*1000);document.cookie=a+"="+escape(c)+";expires="+d.toGMTString()}
// 获取cookie
function getCookie(b){var a,c=new RegExp("(^| )"+b+"=([^;]*)(;|$)");if(a=document.cookie.match(c)){return unescape(a[2])}else{return null}}
// 核心函数
function inlojv_js_getqqinfo(){
 // 获取cookie
 if(getCookie('user_avatar') && getCookie('user_qq') ){ 
 //$('.comt-title img').attr('src',getCookie('user_avatar')); 
 $('#comt-qq').val(getCookie('user_qq')); //获取缓存QQ号
 }
 $('#comt-qq').on('blur',function(){
 var qq=$('#comt-qq').val(); // 获取访客填在qq表单上的qq数字,其中#comt-qq表示QQ input标签上的id!
 $('#email').val($.trim(qq)+'@qq.com'); // 将获取到的qq,改成qq邮箱填入邮箱表单,其中#email表示邮箱input标签上的id
 // ajax方法获取昵称
 $.ajax({
 type: 'get',
 url:jsui.uri+'/modules/get_qqinfo.php?type=getqqnickname&qq='+qq, //get_qqinfo所在位置,用于获取QQ信息
 dataType: 'jsonp',
 jsonp: 'callback',
 jsonpCallback: 'portraitCallBack',
 success: function(data) {
 // console.log(data);
 $('#author').val(data[qq][6]); // 将返回的qq昵称填入到昵称input表单上
 setCookie('user_qq',qq); // 设置cookie
 },
 error: function() {
 $('#comt-qq,#author,#email').val(''); // 获取失败清空表单 
 }
 });
 // 获取头像
 $.ajax({
 type: 'get',
 url:jsui.uri+'/modules/get_qqinfo.php?type=getqqavatar&qq='+qq, //get_qqinfo所在位置,用户获取QQ头像信息
 dataType: 'jsonp',
 jsonp: 'callback',
 jsonpCallback: 'qqavatarCallBack',
 success: function(data) { 
 $('.comt-title img').attr('src',data[qq]); // 将返回的qq头像设置到你评论表单区域显示头像的节点上
 setCookie('user_avatar',data[qq]); // 设置cookie
 },
 error: function() {
 $('#comt-qq,#author,#email').val(''); // 获取失败清空表单
 }
 });
 });
}
 收藏 (2) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:轻语博客 » wordpress添加QQ获取用户名、邮箱、头像

分享到: 更多 (0)
  • 评论 11

    评论前必须登录!

     

    切换注册

    登录

    忘记密码 ?

    您也可以使用第三方帐号快捷登录

    Q Q 登 录
    微 博 登 录
    切换登录

    注册