PIX主题添加注册弹窗功能,把PIX从单用户朋友圈博客变为多用户互动博客

PIX主题本身是一个类似于朋友圈的单用户博客,尽管基于wordpress开发,但是没有注册入口。这么好的主题,尤其是卡片动态功能,如果只是站长一个人发,太没有意思了,赶紧上车,让我们改进PIX主题,添加一个注册弹窗功能。

本文修改后需要更新缓存。为保证安全,新注册用户一律为订阅者,订阅者只有评论文章功能,后台需要编辑用户资料改为投稿者(贡献者)或者作者才能发布片刻和文章,前者需要审核才能显示,并且不能删除自己发布的内容,后者无需审核,并且对于仅限自己发布的内容拥有完全的权限。站长可以根据实际情况进行权限分配。

一、实现原理和逻辑:

在保持现有登录弹窗代码及功能不变的前提下,新增一个注册弹窗,能够通过点击文字实现相互左右翻转切换。

PIX主题添加注册弹窗功能,把PIX从单用户朋友圈博客变为多用户互动博客-似水流年
PIX主题添加注册弹窗功能,把PIX从单用户朋友圈博客变为多用户互动博客-似水流年

注册弹窗有三个注册时必须输入的地方:用户名、密码和邮箱。注册后不会发注册邮件,将直接返回进行登录。新注册用户默认角色为订阅者。

同一个用户名或者邮件只能被注册一次,密码必须时数字和字母结合且长度不小于8位,如果三者未输入或不满足注册条件,则进行相应提示。

未输入提示:

PIX主题添加注册弹窗功能,把PIX从单用户朋友圈博客变为多用户互动博客-似水流年

用户名已被注册提示:

PIX主题添加注册弹窗功能,把PIX从单用户朋友圈博客变为多用户互动博客-似水流年

邮箱已被注册提示:

PIX主题添加注册弹窗功能,把PIX从单用户朋友圈博客变为多用户互动博客-似水流年

用户名和邮箱同时被注册提示:

PIX主题添加注册弹窗功能,把PIX从单用户朋友圈博客变为多用户互动博客-似水流年

密码不符合要求提示:

PIX主题添加注册弹窗功能,把PIX从单用户朋友圈博客变为多用户互动博客-似水流年

二、修改文件:

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,但非管理员用户不能置顶片刻,如需置顶,需要向管理员申请。申请通过即全局全站置顶,并在片刻右上角编辑功能下方显示置顶专用图标。

PIX主题添加注册弹窗功能,把PIX从单用户朋友圈博客变为多用户互动博客-似水流年

因为只有注册用户才能发布片刻,因此,点击用户名会进入相应的用户作者主页中,鼠标放上去的时候,会提示:“进入XXX的作者主页”。

代码修改如下:

温馨提示: 此处为隐藏内容,需要评论本文后才能查看.
评论后请刷新一次页面,但注意不要清除缓存,否则还需要再次评论!

6、修改pix/tpl/single-moment.php,添加置顶图标和作者主页,与content-moment.php保持一致。

温馨提示: 此处为隐藏内容,需要评论本文后才能查看.
评论后请刷新一次页面,但注意不要清除缓存,否则还需要再次评论!

7、非必须修改项:如果参照本站使用了回复显示功能,原来的代码需要修改,以上改完后,注册会员无需回复即可查看隐藏内容,需要修改成回复查看。

原来的帖子内容参见本文:

PIX主题文章嵌入回复可见功能(站长直接可见无需回复) PIX主题文章嵌入回复可见功能(站长直接可见无需回复) 不得不说,有时候确实需要嵌入回复可见功能,以便提升网站的互动性,可惜PIX主题不支持,只有自己动手了。 先看效果图,已适配PIX主题: 开始改造: 一、pix/func.php或者pix/functi... 时间:2023/10/31 分类:技术相关

修改后代码如下,文件位置参照上文。

温馨提示: 此处为隐藏内容,需要评论本文后才能查看.
评论后请刷新一次页面,但注意不要清除缓存,否则还需要再次评论!

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;
	}

更新缓存,大功告成!

Comments | 10 条评论
  • 战东海

    Microsoft Edge 120 Microsoft Edge 120 Windows 10 Windows 10 1中国–辽宁–抚顺 联通 ip address 113.231.*.*

    这回网站能刷新出来来

    • 似水流年

      Microsoft Edge 119 Microsoft Edge 119 Windows 10 Windows 10 1中国–河南–漯河 联通 ip address 182.126.*.*

      是的。

  • sanant

    Microsoft Edge 119 Microsoft Edge 119 Windows 10 Windows 10 1中国–河南–漯河 联通 ip address 182.126.*.*

    看下评论。

  • opopo

    Safari 17 Safari 17 Mac OS X 10.15 Mac OS X 10.15 1美国 ip address 104.28.*.*

    评论隐藏不显示呢!!!

    • 似水流年

      Microsoft Edge 119 Microsoft Edge 119 Windows 10 Windows 10 1中国–河南–漯河 联通 ip address 182.126.*.*

      刷新下页面。

      • 740080298@qq.com

        Microsoft Edge 119 Microsoft Edge 119 Mac OS X 10.15 Mac OS X 10.15 1中国–重庆–重庆 移动 ip address 183.228.*.*

        没用,刷新也不出来~~~😃

        • 似水流年

          Microsoft Edge 119 Microsoft Edge 119 Windows 10 Windows 10 1中国–河南–漯河 联通 ip address 182.126.*.*

          稍等,我看下。

        • 似水流年

          Microsoft Edge 119 Microsoft Edge 119 Windows 10 Windows 10 1中国–河南–漯河 联通 ip address 182.126.*.*

          重新刷新一下,或者重新评论一下再刷新试试,应该可以了。

  • 740080298@qq.com

    Microsoft Edge 119 Microsoft Edge 119 Mac OS X 10.15 Mac OS X 10.15 1中国–重庆–重庆 移动 ip address 183.228.*.*

    看看隐藏

    • 似水流年

      Microsoft Edge 119 Microsoft Edge 119 Windows 10 Windows 10 1中国–河南–漯河 联通 ip address 182.126.*.*

      刷新下页面。

消息盒子
# 您需要首次评论以获取消息 #
# 您需要首次评论以获取消息 #

只显示最新10条未读和已读信息