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

WordPress CMS主题用户中心开发 9:帐号设置页面author_user.php静态代码添加文章时,我们只是为author_user.php文件添加了静态的表单代码,我们要想实现前台设置用户帐号的功能,就必须为这个author_user.php文件添加php处理代码,用来处理这个页面提交的表单数据。

第一步:添加用户判断。

我们制作WordPress主题用户中心的帐号设置时,只允许用户自己才可以修改自己的帐号信息,而其它人是不能修改别人的信息的。所以,在author_user.php代码中我们要添加一个判断:如果 当前用户==作者,就允许修改,否则就不允许修改,代码如下:

ID == $curauth->ID){ ?>     这里放上一章中的author_user.php静态表单代码

第二步:添加表单数据处理代码。

在上面的用户判断代码的上面添加如下代码:

//先判断form表单提交 if(isset($_POST['submit']) && isset($_POST['action']) && $_POST['action']=='update_user' ){ //获取表单数据,把它保存在数组中,当然,也可不保存为数组 $data['uid'] = isset($_POST['user_id']) ? $_POST['user_id'] : ''; $data['nickname'] = isset($_POST['nickname']) ? $_POST['nickname'] : ''; $data['addess'] = isset($_POST['addess']) ? $_POST['addess'] : ''; $data['user_site'] = isset($_POST['user_site']) ? $_POST['user_site'] : ''; $data['qq'] = isset($_POST['qq']) ? $_POST['qq'] : ''; $data['sina_weibo'] = isset($_POST['sina_weibo']) ? $_POST['sina_weibo'] : ''; $data['user_sign'] = isset($_POST['user_sign']) ? $_POST['user_sign'] : ''; $data['description'] = isset($_POST['description']) ? $_POST['description'] : ''; //这里用update_user_meta()来更新用户字段,要一一对应 update_user_meta($data['uid'],'nickname',$data['nickname']); update_user_meta($data['uid'],'addess',$data['addess']); update_user_meta($data['uid'],'user_site',$data['user_site']); update_user_meta($data['uid'],'qq',$data['qq']); update_user_meta($data['uid'],'sina_weibo',$data['sina_weibo']); update_user_meta($data['uid'],'user_sign',$data['user_sign']); update_user_meta($data['uid'],'description',$data['description']); echo ''; return; }

有人可能要问了:为什么不直接更新wp_users用户数据表呢?那样不是更简单一点吗?是的,如果直接更新wp_users表是要简单的多。但是,这里的用户字段并不都是放在wp_users表中的,有的是自定义字段,而用户的自定义字段是放在wp_usermeta表中的,这样一样,就要进行多表操作。而wordpress自己就提供了修改自定义字段的函数update_user_meta(),为什么不用它呢?所以,这里我们就用到它了。如果你想使用多表操作也行,这就要你精通sql数据库语句了,具体,你要以参阅本站的数据库相关的文章。

 

显示全部内容...