上一章我们为WordPress主题的用户中心author.php添加了静态代码布局,实现了前台页面的布局展现效果。现在,我们就要为它们调用后台数据:调用当前页面的作者信息、关注和粉丝、以及文章总浏览量等,修改a标签的链接,让它指向对应的页面。
第一步:为用户添加几个自定义字段:
从上一章我们实现的前台页面效果中我们可以看到,有以下几个字段:积分、关注、粉丝、文章总浏览量、个人网站地址、加入时间(注册时间)、最近登录时间。我们先为用户添加以上几个字段,以供后期之用。在WordPress主题的functions.php添加如下代码:
//自定义用户个人资料信息
add_filter( 'user_contactmethods', 'wpdaxue_add_contact_fields' );
function wpdaxue_add_contact_fields( $contactmethods ) {
$contactmethods['user_site'] = '人个网站';
$contactmethods['user_fanc'] = '粉丝'; //粉丝,记下关注者的ID
$contactmethods['user_follow'] = '关注别人'; //关注别人,记下被关注者的ID
$contactmethods['user_jifen'] = '积分';
$contactmethods['user_views'] = '总浏览量';
return $contactmethods;
}
第二步:修改上图第1部分代码:
因为是作者用户中心页面,所以我们要调用当前作者的头像和用户名。并且,如查当前登录用户与作者是同一人时,就显示“写博客”和“帐号设置”按钮,否则,就显示“关注”按钮。
修改后的代码如下:
这样,我们点击“写博客”时,就会进入到author_write.php写文章页面;点击“帐号设置”就会进入到author_user.php用户帐号设置页面;点击“关注”按钮,就会关注当前用户。
第三步:修改上图第2部分:
我们要调用后台的积分数据、关注数据、粉丝数据,以及发表了多少篇文章。代码如下:
上面调用积分、关注、粉丝时用到了自定义函数,所以我们要在functions.php中添加这几个函数:
//获取作者关注 的数
function get_guanzu($uid){
$author_follow = get_user_meta($uid,'user_follow'); //关注
if(empty($author_follow)){
$num1 = 0;
}else{
if($author_follow[0]==''){
$num1 = 0;
}else{
$follows = explode(",",$author_follow[0]);
$num1 = !empty($follows) ? count($follows) : 0;
}
}
return $num1;
}//获取作者粉丝数
function get_fanc($uid){
$author_follow = get_user_meta($uid,'user_fanc'); //关注
if(empty($author_follow)){
$num1 = 0;
}else{
if($author_follow[0]==''){
$num1 = 0;
}else{
$follows = explode(",",$author_follow[0]);
$num1 = !empty($follows) ? count($follows) : 0;
}
}
return $num1;
}//获取作者积分
function get_jefen($uid){
$user_jifen = get_user_meta($uid,'user_jifen');
if(empty($user_jifen)){
$num = 0;
}else{
$num = ($user_jifen[0]=='') ? 0 : $user_jifen[0];
}
return $num;
}
第四步:修改上图第3部分:
因为要调用文章总浏览量,所以我们先在wordpress主题的functions.php文件中添加获取总浏览量的函数:
//获取作者文章总浏览量
function get_post_views($uid){
$user_views = get_user_meta($uid,'user_views');
if(empty($user_views)){
$num = 0;
}else{
$num = ($user_views[0]=='') ? 0 : $user_views[0];
}
return $num;
}
因为要获取用户最后登录时间,所以,我们要为用户添加最后登录时间字段,同样,在functions.php文件中添加如下:
//在用户登录时,创建一个新字段存储用户登录时间
function insert_last_login( $login ) {
global $user_id;
date_default_timezone_set(PRC);// 纠正8小时时差
$user = get_userdatabylogin( $login );
update_user_meta( $user->ID, 'last_login', date('Y-m-d H:i:s') );
}
add_action( 'wp_login', 'insert_last_login' );
再来修改上图第3部分的代码,如下:
第五步:修改上图第4部分:
第4部分是网站最新文章,代码如下:
post_title.'">'.$post->post_title.''; endwhile; wp_reset_query(); ?>
第六步:修改上图第5部分:
上图第5部分,也就是author.php用户中心的右侧主体。默认情况下显示的是用户发表的文章列表,修改后的代码如下:
post_title.''; echo '
'.mb_substr(strip_tags($post->post_content),0,150).'......
'; echo ''; echo '
'; echo ' '; echo ''; echo ''; post_views(' ', ''); echo ''; echo ''.$post->comment_count.''; //当前登录用户是作者本人时,打开编辑 if($current_user->ID==$curauth->ID){ echo '编辑'; } echo '
'; echo ''; endwhile; else: echo ' '; echo '目前还没有发表文章。
'; endif; wp_reset_query(); ?>
通过上面的几步骤,我们对wordpress主题用户中心主页面author.php进行了改造:修改a标签链接到对应的页面、调用后台数据展现作者的积分、关注数、粉丝数、发表的文章数、总浏览量以及用户发表的文章列表和网站的最新文章。嗯,今天就写到这里。谢谢参阅。