PIX主题添加注册弹窗功能,把PIX从单用户朋友圈博客变为多用户互动博客
本文是《技术相关(共37篇)》目录的第 13 篇。阅读本文前,建议先阅读本文前3篇文章:
PIX主题本身是一个类似于朋友圈的单用户博客,尽管基于wordpress开发,但是没有注册入口。这么好的主题,尤其是卡片动态功能,如果只是站长一个人发,太没有意思了,赶紧上车,让我们改进PIX主题,添加一个注册弹窗功能。
本文修改后需要更新缓存。为保证安全,新注册用户一律为订阅者,订阅者只有评论文章功能,后台需要编辑用户资料改为投稿者(贡献者)或者作者才能发布片刻和文章,前者需要审核才能显示,并且不能删除自己发布的内容,后者无需审核,并且对于仅限自己发布的内容拥有完全的权限。站长可以根据实际情况进行权限分配。
一、实现原理和逻辑:
在保持现有登录弹窗代码及功能不变的前提下,新增一个注册弹窗,能够通过点击文字实现相互左右翻转切换。
注册弹窗有三个注册时必须输入的地方:用户名、密码和邮箱。注册后不会发注册邮件,将直接返回进行登录。新注册用户默认角色为订阅者。
同一个用户名或者邮件只能被注册一次,密码必须时数字和字母结合且长度不小于8位,如果三者未输入或不满足注册条件,则进行相应提示。
未输入提示:
用户名已被注册提示:
邮箱已被注册提示:
用户名和邮箱同时被注册提示:
密码不符合要求提示:
二、修改文件:
1、修改pix/layouts/login-form.php,用以下代码代替:
2、修改pix/inc/assets/css/main.css,大概3310-3368行,或者搜索
#login_form_box .modal_inner {
width: 280px;
}
开始,
#login_form_box label i {
position: absolute;
left: 10px;
color: #6c8677;
}
结束。
将以上代码包含开始和结束替换为:
#login_form_box .modal_inner {
width: 280px;
}
form#login label {
position: relative;
display: flex;
margin-bottom: 10px;
align-items: center;
justify-content: flex-start;
align-content: center;
}
form#register label {
position: relative;
display: flex;
margin-bottom: 10px;
align-items: center;
justify-content: flex-start;
align-content: center;
}
#login_form_box input#reg_username,
#login_form_box input#reg_password,
#login_form_box input#reg_email {
width: 100%;
font-size: 13px;
padding: 8px 5px 8px 40px;
background: #ebf2ed;
border-color: #c2cfc9;
outline: none;
border-radius: 8px;
}
#login_form_box input#reg_username:focus,
#login_form_box input#reg_password:focus,
#login_form_box input#reg_email:focus {
border-color: #00bb5e;
}
#login_form_box input#username , #login_form_box input#password {
width: 100%;
font-size: 13px;
padding: 8px 5px 8px 40px;
background: #ebf2ed;
border-color: #c2cfc9;
outline: none;
border-radius: 8px;
}
#login_form_box input#username:focus , #login_form_box input#password:focus {
border-color: #00bb5e;
}
#login_form_box label i {
position: absolute;
left: 10px;
color: #6c8677;
}
3、修改pix/inc/pix-fn.php前两个函数,以实现不同发布者获取不同的头像和昵称,即以下两个函数:
//获取头像 function get_user_avatar()
//获取昵称 function get_nickname()
修改后代码如下:
实现的逻辑:判断已经发布的片刻moment、文章post或者评论comment的发布者身份,如果是管理员,优先显示后台“常规设置---博主自定义昵称”作为昵称,如果后台”常规设置---博主自定义昵称“没有填写,则显示后台”个人资料---公开显示为“作为昵称;如果不是管理员,直接显示后台”个人资料---公开显示为“作为昵称;头像取各自的头像。
4、修改pix/layouts/header-tool.php,使右上角头像也能正确获取当前登录用户的正确头像。
5、修改pix/tpl/content-moment.php,实现非管理员用户前台可以直接编辑片刻moment,但非管理员用户不能置顶片刻,如需置顶,需要向管理员申请。申请通过即全局全站置顶,并在片刻右上角编辑功能下方显示置顶专用图标。
因为只有注册用户才能发布片刻,因此,点击用户名会进入相应的用户作者主页中,鼠标放上去的时候,会提示:“进入XXX的作者主页”。
代码修改如下:
6、修改pix/tpl/single-moment.php,添加置顶图标和作者主页,与content-moment.php保持一致。
7、非必须修改项一:如果参照本站使用了回复显示功能,原来的代码需要修改,以上改完后,注册会员无需回复即可查看隐藏内容,需要修改成回复查看。
原来的帖子内容参见本文:
修改后代码如下,文件位置参照上文。
8、非必须修改项二:如果在评论时提示错误,因为现在我的又不提示错误了,忘记具体提示内容了,但是错误是指向wp-includes/comment-template.php第一段函数,则第一段函数修改为:
function get_comment_author( $comment_id = 0 ) {
$comment = get_comment( $comment_id );
$comment_id = ! empty( $comment->comment_ID ) ? $comment->comment_ID : $comment_id;
if ( empty( $comment->comment_author ) ) {
$user = ! empty( $comment->user_id ) ? get_userdata( $comment->user_id ) : false;
if ( $user ) {
$comment_author = $user->display_name;
} else {
$comment_author = __( 'Anonymous' );
}
} else {
$comment_author = $comment->comment_author;
}
更新缓存,大功告成!
您已阅读完《技术相关(共37篇)》目录的第 13 篇。请继续阅读本文后3篇文章:
战东海
这回网站能刷新出来来
似水流年
是的。
sanant
看下评论。
opopo
评论隐藏不显示呢!!!
似水流年
刷新下页面。
740080298@qq.com
没用,刷新也不出来~~~😃
似水流年
稍等,我看下。
似水流年
重新刷新一下,或者重新评论一下再刷新试试,应该可以了。
740080298@qq.com
看看隐藏
似水流年
刷新下页面。