wordpress登录注册

wordpress登录注册(wordpress注册)

近日,关于wordpress文章注册才能看的消息引起了广泛关注。这一消息对于使用wordpress平台的用户来说可谓是一个重大利好。那么,究竟是怎样的情况呢?下面就让我们一起来揭秘吧!

首先,我们来简单概括一下这个问题。在过去的一段时间里,很多wordpress用户都反映,在浏览wordpress网站或博客时,经常会遇到一些需要注册才能查看内容的情况。这给用户带来了很大的不便和困扰。为了解决这个问题,wordpress平台推出了新的功能——文章注册才能看。

接下来,我们将详细介绍这个新功能的9个重要特点。

1.方便快捷:用户只需进行简单的注册操作,就可以轻松查看所需内容,无需繁琐的步骤和等待时间。

2.保护隐私:通过文章注册才能看功能,用户可以更好地保护自己的个人信息和隐私安全。

3.提高质量:对于网站主来说,开启文章注册才能看功能可以筛选掉一些无效流量和垃圾访问,提高网站内容的质量和用户体验。

4.增加互动:文章注册才能看功能也可以促进用户与网站主之间的互动。用户在注册过程中可以选择订阅相关信息,从而更好地了解和参与到网站的活动中。

5.广告优化:对于一些商业性质的网站来说,开启文章注册才能看功能还可以为网站主带来更多的商业机会和广告收入。

6.个性定制:wordpress平台提供了丰富的文章注册才能看功能定制选项,网站主可以根据自己的需求进行个性化设置。

7.动态更新:网站主可以根据需要随时调整文章注册才能看功能的设置,保持与用户需求的同步更新。

8.多层次权限:文章注册才能看功能支持多层次权限管理,网站主可以根据不同用户的身份和需求,设置不同的访问权限。

9.全面兼容:wordpress平台确保开启文章注册才能看功能后,依然能够兼容各类插件和主题,不影响网站原有功能的正常运行。

总结起来,wordpress文章注册才能看功能是一个方便快捷、保护隐私、提高质量、增加互动、广告优化、个性定制、动态更新、多层次权限和全面兼容的功能。对于wordpress用户来说,这无疑是一个重要的利好消息。

希望通过本文的介绍,能够帮助到广大wordpress用户更好地了解和使用文章注册才能看功能,为他们的网站运营和内容管理提供更多的选择和可能性。让我们一起期待这个功能的进一步发展和完善吧!

如何在 WordPress 中实现 JWT 登录和认证

好吧,终于在 WPJAM Basic 中实现了 JWT 登录和认证功能,今天就整理一下,首先按照惯例做一些 JWT 的介绍。

什么是 JWT

JWT(JSON Web Token)是一种轻量级的、自包含的、通常用于身份验证和授权的令牌,它将用户信息(如用户ID、角色和权限等)编码到一个 JSON 对象中,然后对其进行数字签名,从而生成一个经过签名的令牌。

由于 JWT 在客户端和服务器之间传输时是加密的,因此服务器可以轻松验证该令牌的有效性和真实性。JWT 常用于无状态的 RESTful API,作为访问受保护资源的凭据,可以在每次请求时附加在请求头中,下图是使用 JWT 的一个常见的交互流程:

JWT 的结构

JWT(JSON Web Token)由三部分组成,分别是:Header(头部)、Payload(负载)和 Signature(签名)。

这三部分使用点(.)分隔,合并为一个字符,如下所示:

header.payload.signature

Header(头部):

Header 是一个 JSON 对象,通常包含两个属性:alg 和 typ,alg 属性表示签名算法(如 HS256、RS256 等),typ 属性表示令牌类型,通常为 "JWT"。Header 会被 Base64Url 编码,得到一个字符串。例如:

{ "alg": "HS256", "typ": "JWT"}

Payload(负载):

Payload 是一个 JSON 对象,包含一些“声明”(Claim),用于传递用户信息和其他业务数据,声明可以是预定义的(如 iss、exp、sub 等),也可以是自定义的,Payload 会被 Base64Url 编码,得到一个字符串。例如:

{ "sub": "1234567890", "name": "John Doe", "iat": 1516239022}

下面这 7 个字段都是由官方所定义的,也就是预定义(Registered claims)的,但并不都是必需的,

iss (issuer):签发人sub (subject):主题aud (audience):受众exp (expiration time):过期时间nbf (Not Before):生效时间,在此之前是无效的iat (Issued At):签发时间jti (JWT ID):唯一身份标识,主要用来作为一次性 token,从而回避重放攻击

另外声明名称只有三个字符,因为 JWT 意味着是紧凑的。

Signature(签名):

签名用于保证 JWT 的完整性和安全性,它是将 Header、Payload 和一个密钥(Secret)通过签名算法进行加密得到的,签名可以防止 JWT 被篡改和伪造,例如,使用 HMAC-SHA256 算法生成签名的方法如下:

HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)

将 Header、Payload 和 Signature 用点(.)连接起来,就得到了一个完整的 JWT,例如:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c在 WordPress 中实现 JWT

通过上面 JWT 的介绍和 JWT 结构可知,生成 JWT,就是通过签名算法和一个用于生成签名的密钥(Secret)对 Payload 生成签名:我们为了方便就只支持 SHA256 签名算法:

function wpjam_generate_jwt($payload, $secret='', $header=[]){ //无法生成没有设置过期时间的 JWT if(empty($payload['exp'])){ return false; } $header = wp_parse_args($header, [ 'alg' => 'HS256', 'typ' => 'JWT' ]); if($header['alg'] == 'HS256'){ $header = base64_urlencode(wpjam_json_encode($header)); $payload = base64_urlencode(wpjam_json_encode($payload)); $jwt = $header.'.'.$payload; $secret = $secret ?: wp_salt(); return $jwt.'.'.base64_urlencode(hash_hmac('sha256', $jwt, $secret, true)); }}

上面的代码首先对 Header 和 Payload 进行 JSON 编码和 URL 安全的 Base64 编码,生成签名的密钥(Secret)如果为空,则使用 WordPress 默认的盐值函数来生成,最后把 Header 和 Payload 和生成的签名通过点(.)连接起来得到了一个完整的 JWT 。

那么怎么验证 JWT 呢,验证的过程就是生成的反过程:首先通过点(.)将 JWT 分割成 Header、Payload 和 Signature 三段,然后对 Header 和 Payload 进行 URL 安全的 Base64 解码和JSON 解码,通过签名的密钥最后验证签名:

function wpjam_verify_jwt($token, $secret=''){ $tokens = explode('.', $token); if(count($tokens) != 3){ return false; } list($header, $payload, $sign) = $tokens; $jwt = $header.'.'.$payload; $secret = $secret ?: wp_salt(); $header = wpjam_json_decode(base64_urldecode($header)); $payload = wpjam_json_decode(base64_urldecode($payload)); if(empty($header['alg']) || $header['alg'] != 'HS256'){ return false; } if(!hash_equals(base64_urlencode(hash_hmac('sha256', $jwt, $secret, true)), $sign)){ return false; } //签发时间大于当前服务器时间验证失败 if(isset($payload['iat']) && $payload['iat'] > time()){ return false; } //该nbf时间之前不接收处理该Token if(isset($payload['nbf']) && $payload['nbf'] > time()){ return false; } //没有设置过期时间,或过期时间小于当前服务器时间验证失败 if(empty($payload['exp']) || $payload['exp'] < time()){ return false; } return $payload;}

我们这边生成和验证函数有点特殊处理,就是都要实现过期时间设置,意思就是不能设置没有过期时间的 JWT。

wpjam_generate_jwt 和 wpjam_verify_jwt 这两个函数在 WPJAM Basic 中已经内置了,通过他们就可以在 WordPress 实现 JWT 的生成和验证了。

特别提醒一下过程中用到的 URL 安全的 Base64 编码和解码函数 base64_urlencode 和 base64_urldecode 也是在 WPJAM Basic 中定义了。

图文教程 WordPress 基本功能使用

通用内容:控制内容的展示,帮助模块.

仪表盘:Welcome,概述,快速草稿,活动,WordPress 活动与新闻,调整仪表盘的布局.

文章管理:新建文章,页面布局调整,新建文章.

分类目录:标签,页面管理,新建页面.

多媒体资源管理:上传文件,管理文件。

友情链接管理:评论管理,主题管理,插件管理,用户管理,用户列表,新建用户,修改用户身份。

课程实践目标:掌握 WordPress 的使用。

通用内容

控制内容的展示

每个页面都可以单击右上角的显示选项来控制页面显示什么内容,方便调整自己的页面布局,符合自己的写作习惯。

帮助模块

WordPress 每个页面都有一个帮助模块,在帮助模块中,可以看到当前页面的具体帮助内容,假如不知道当前页面怎么用,除了在达人课的读者圈中提问,也可以单击上方的“帮助”按钮来寻找答案。

仪表盘

仪表盘是我们登录 WordPress 后台后首先会看到的内容。

Welcome

Welcome 是新用户引导,单击“不再显示”链接后,下次就不会再出现。

如果后面还想看,可以单击右上角的“显示”选项:

勾选其中的 Welcome 复选框, 这个界面就会出现了。

概述

概述里展示了我们博客的最基础的几个数据:博客文章数、博客评论数、单页数目、当前版本和当前使用的主题。

单击其中的超链接,就会跳转到对应的列表。例如,单击“1篇文章”链接,就会跳转到文章列表,可以对文章进行管理。

快速草稿

快速草稿可以帮助我们在仪表盘记录心中的所念所想,而无需加载完整的 WordPress 编辑器来编辑格式。当有一些小的灵感时,可以在这里快速的输入、并保存,后续再完善,以免忘记了这个想法。

活动

在这里会显示博客的最新动向,比如最近发布的文章、最近游客留下的评论等等。

WordPress 活动与新闻

这个栏目展示了 WordPress 官方的一些新闻和活动,不过对于我们大多数人来说都没有任何用。所以这个选项一般都是隐藏的。

单击右侧的“小三角”按钮,就可以收缩 tab 了:

不过,用户也可以单击页面右上角的显示选项,取消该选项的勾选即可。

调整仪表盘的布局

仪表盘的每个元素都是可以调整位置的,当将鼠标的光标移动到标题时,等待其变为移动符号时,拖动区块即可移动。

文章管理

新建文章

文章是 WordPress 的最基本的单位,我们可以通过两种方式进入新建文章的页面,一个是通过菜单栏中的“文章——新建文章”进入:

或者通过顶部的快捷菜单进入。

页面布局调整

进入到新建文章页面后,会看到很多项目:

在使用前,建议读者先调整这个页面的布局,调整为符合你自己习惯的布局。

单击上方的显示选项按钮,可以看到具体显示哪些模块,是否切换为单栏布局。

一般来说,推荐显示 形式(需要主题支持)、分类目录、标签、特色图片(特色图片)、摘要。

我的布局如下,仅供参考:

其他内容可以根据自己的具体情况来设置。

下方的全高度编辑器其实是“全屏”功能,影响不到,主要是手动开启的。而后面的免打扰功能开启后,会在读者进行写作时进入免打扰模式,隐藏左侧的菜单和右侧的发布等连接。

新建文章

标题栏

页面中的元素非常简单,上方的标题栏填写我们设置的文章标题。

固定链接

下方的固定链接则可以编辑,设置我们文章的链接名。如果你有自己的文章风格,不希望其为你生成默认的中文链接名,可以在这里手动设置。

添加媒体

WordPress 为我们提供了非常完善的多媒体资源管理能力。单击“添加媒体”按钮,就可以上传要添加的图片了。

你可以上传新的图片,或者使用媒体库中的图片,

上传后,选中你要插入的图片(支持选中多个)。单击“插入”按钮即可插入图片到文章。

在插入前可以设置图片的说明和替代文本,说明将会设置为 caption 标签。而替代文本则会设置为 alt 属性。

下方编辑器也非常好用,可以直接单击下方的按钮,选择对应的样式设置。

下方的摘要则会影响到文章列表和 RSS 列表的内容输出,你可以认真写一写摘要,并借此提高读者的打开率。

有的主题会支持不同形式的主题,可以设置不同形式的主题,以使用主题针对特定形式的设定。

有些主题还支持自定义栏目,还可以根据主题说明设置对应的自定义栏目。

分类目录

单击左侧菜单栏中的“文章——分类目录”按钮,可以进入到分类目录的设置页面。

可以新建一个分类目录。分类目录支持多级,这样可以很方便的分类文章。

右侧则是分类目录的列表,可以单击编辑进入详细编辑页面编辑,也可以单击快速编辑修改分类名和分类别名。单击“查看”按钮,则会进入到前台的目录页面。

标签

除了分类目录,我们还可以通过标签对文章进行管理,标签的操作逻辑和分类目录基本一致,唯一不同的是标签不支持多级分类。

页面管理

页面部分比较简单,很多基础操作和文章管理是一致的,就不在赘述相同的部分了,这里只讲一下主要的不同点。

新建页面

新建页面中大体上和新建文章没有区别这里只说不同点,便是页面属性。

页面没有目录,但是可以设置页面的上级页面,通过一个主页面和若干子页面来管理内容,可以帮助我们更好的整理内容。

模板则是 WordPress 一个非常有用的功能。很多时候,我们需要的功能不止是新闻的展示,可能是一些其他的功能,如展示友情链接、展示日历、展示消息通知等等。

通过选择不同的模板,就可以实现不同功能页面的加载。

此功能需要主题的支持,后续主题开发课也会加入这部分内容。

多媒体资源管理

上传文件

多媒体资源的上传有两种方式,一种是通过新增文章、页面时上传,另一种是通过媒体库进行上传。

单击 媒体 | 添加 命令,可以看到上传的界面,选择要上传的内容就会自动上传了。你也可以把要上传的内容拖动到上传区域来进行上传。

管理文件

单击媒体 | 媒体库命令,会进入媒体库,可以在媒体库中管理附件:

单击“附件”按钮,可以进入到附件的编辑页面进行管理:

可以为附件设置具体的信息,如果你的主题中有附件页,就可以看到具体的信息:

此外,我们还可以编辑图片,对图片进行简单的处理,在附件的编辑页面单击“编辑图像”按钮。

WordPress 支持对图片进行裁剪、旋转、镜像等功能。(我这里因为是gif,所以裁剪是灰的。)

编辑完成后,单击右侧的“更新”按钮即可将图片进行更新。

友情链接管理

在最新版本的 WordPress 中默认没有开启这个功能,不过可以通过安装 Link Manager 插件来开启这个功能。

单击左侧边栏的链接管理,可以进入到链接管理的界面。

首先,我们可以根据需要,创建链接所属目录,创建方式和创建文章目录相同,单击链接分类目录,进入到管理页面。

创建完成目录后,我们可以创建具体的链接,单击左侧菜单栏中的添加按钮,进入到添加链接的页面。

必要设置包括名称和 Web 地址,将要添加的网站的名称和 Web 地址填入其中,即可添加链接了。

不过下方有很多其他的设置也值得知道。

在下方应该会注意到有个 XFN(XML Friends NetWork),通过 XFN 可以表明这个链接和你的远近亲疏关系,还是很有意思的。不过目前国内并没有针对此进行优化。

此外,如果你觉得文字链接不好看,还可以选择使用图片链接,上传图片、设置备注、设置 RSS 地址等。

如果希望链接展示在前台,可以前往外观 | 小工具中添加。

你可以在可视区域中添加一个链接小工具,并设置要显示的链接和具体的类型。

评论管理

单击左侧的评论管理 按钮,会进入到评论管理的页面。

评论默认有四种状态,待审核、已批准、垃圾评论和回收站评论。

所有未被确认为垃圾评论,但又从未留言过的评论都会放在待审核列表中(取决于在评论设置中的设置)。

可以在列表中修改一个评论的状态、回复、甚至是编辑它。

也可以单击后面的按钮,查看同一篇文章的其他评论。

可以批量选择评论,并对他们进行处理。

上述就是我们常用的评论的操作。

此外,记得时常去清理下回收站,让数据库更干净。

主题管理

此部分会在后续的主题开发中进行讲解。

插件管理

此部分会在后续的插件开发中进行讲解。

用户管理

用户管理这里大体上和我们后面要讲的个人信息设置相同,具体的细节操作我不再重复,可以到第4课看 WordPress 的基本设置。

用户列表

点击左侧边栏、用户——所有用户,我们可以看到目前博客的所有注册用户、以及其所有文章。

除了自己这个用户无法删除外,你可以删除其他用户。

新建用户

单击左侧边栏 | 用户 | 添加用户命令,我们可以新建一个 WordPress 用户。

基本属性直接填写即可,这里关注一下密码和角色。

默认情况下, WordPress 会为用户生成一个极为复杂的密码,如果希望自己帮用户指定密码的话,可以单击“显示密码”按钮,在弹出的密码框中输入密码。

<p https:="" www.zuidongnet.com"="" target="_self" title="南宁营销型网站建设" style="margin-top: 0px; margin-bottom: 1.1em; padding: 0px 0px 5px; line-height: 20px; color: rgb(63, 63, 63); font-size: 14px; width: 1200px; display: inline-block; white-space: normal; background-color: rgb(255, 255, 255); box-sizing: border-box; font-family: "Source Sans Pro", sans-serif;">