首页>技术知识>WordPress wordpress CMS主题用户中心开发 5:完成author.php页面的后台数据调用
WordPress教程学习网站
2022-06-22
WordPress教程学习网站丨模板定制、网站使用教程、插件推荐、代码优化、wp建站教程、数据文章采集、系统开发、系统优化,功能开发,仿站教程等各类WordPress技术知识,供网友学习了解。

上一章我们为WordPress主题的用户中心author.php添加了静态代码布局,实现了前台页面的布局展现效果。现在,我们就要为它们调用后台数据:调用当前页面的作者信息、关注和粉丝、以及文章总浏览量等,修改a标签的链接,让它指向对应的页面。

image.png

第一步:为用户添加几个自定义字段:

从上一章我们实现的前台页面效果中我们可以看到,有以下几个字段:积分、关注、粉丝、文章总浏览量、个人网站地址、加入时间(注册时间)、最近登录时间。我们先为用户添加以上几个字段,以供后期之用。在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部分代码:

因为是作者用户中心页面,所以我们要调用当前作者的头像和用户名。并且,如查当前登录用户与作者是同一人时,就显示“写博客”和“帐号设置”按钮,否则,就显示“关注”按钮。

修改后的代码如下:

  • ID==$uid){ //如果作者 与 当前登录用户是同一人, echo '写博客'; echo '帐号设置'; }else{ //如果已关注作者,就显示“已关注”,如果没有关注作者,就显示“关注”    $user_follow = get_user_meta($current_user->ID,'user_follow');    $arr = explode(',',$user_follow[0]);    if(!in_array($uid,$arr)){    echo '关注';    }else{    echo '已关注';    } } ?>

这样,我们点击“写博客”时,就会进入到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 ''; the_tags('标签:', ', ', ''); echo ''; echo '

'; echo '

'; echo ''; the_category(); echo ''; echo '';  post_views(' ', '');   echo ''; echo ''.$post->comment_count.''; //当前登录用户是作者本人时,打开编辑 if($current_user->ID==$curauth->ID){ echo '编辑'; } echo '

'; echo '

'; endwhile; else: echo '

目前还没有发表文章。

'; endif; wp_reset_query(); ?>

通过上面的几步骤,我们对wordpress主题用户中心主页面author.php进行了改造:修改a标签链接到对应的页面、调用后台数据展现作者的积分、关注数、粉丝数、发表的文章数、总浏览量以及用户发表的文章列表和网站的最新文章。嗯,今天就写到这里。谢谢参阅。

 

显示全部内容...