Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 281|回复: 0

WordPress创建需要用户注册并登录的页面模板

[复制链接]

1

主题

1

帖子

5

积分

新手上路

积分
5
发表于 2023-11-13 12:48:46 | 显示全部楼层 |阅读模式
我们正在完成在客户端站点上实现自定义主题的工作,他们要求我们构建某种交互,其中某些页面仅限注册订阅者。 WordPress 确实提供了页面的可见性选项,但这不适合这种情况。 私有 – 选择私有可见性仅允许管理员和编辑者查看内容。 密码保护 – 需要为每个页面应用唯一的代码才能查看内容。 起初,我们考虑过实现第三方插件,但解决方案很简单。 我们可以创建一个独特的模板,要求查看者注册并登录才能查看该页面。 WordPress 模板:仅限订阅者 首先,我们在子主题中复制了客户的页面模板 (page.php)。

要创建模板,您需要在页面顶部添加一些代码: <?php /* Template Name: Subscribers Only */ ?> 接下来,在页面代码中查找显示内容的行。 它应该看起来像这样: <?php the_content(); ?> 现在,您需要在该行周围包含一些代码: <?php $redirect_url = get_permalink(); // 获取当 中国海外欧洲号码数据 前页面的 URL if (is_user_logged_in()) : ?> <h2><?php the_title(); ?></h2> <?php the_content(); ?> <?php else : ?> <h2>仅限订阅者</h2> <p>很抱歉,您尝试访问的内容仅限于某些角色。

<a href="<?php echo wp_login_url($redirect_url); ?>">登录</a>即可访问它。</p> <?php endif; ?> 以下是对代码要点的解释: $redirect_url = get_permalink();:此行检索当前页面的 URL 并将其存储在变量 $redirect_url 中。 if (is_user_logged_in()) :: 此条件语句检查用户是否已登录。如果用户已登录,则执行此块中的代码。 <h2><?php the_title(); ?></h2>:显示当前页面的标题。 <?php the_content(); ?>:显示当前页面的内容。 如果用户未登录,则执行 else 块中的代码。 <h2>仅限订阅者</h2>:这会显示一个标题,表明内容受到限制。 <p>很抱歉,您尝试访问的内容仅限于某些角色。 <a href="<?php echo wp_login_url($redirect_url); ?>">登录</a>以访问它。



/p>:这会显示一条消息,解释内容仅限于某些角色,并提供 “登录”链接。 该链接的 href 属性设置为 wp_login_url($redirect_url) 生成的登录 URL,确保用户在登录后重定向回当前页面。此代码有效地检查用户是否已登录,如果没有登录,则鼓励他们 登录以访问受限内容,并通过链接将他们引导回他们尝试查看的页面。 按特定用户角色查看 如果您愿意,您还可以将内容限制为特定用户角色: <?php $allowed_roles = array('subscriber', 'editor', 'author'); // 添加您想要允许的角色 $user = wp_get_current_user(); $redirect_url = get_permalink(); if (array_intersect($allowed_roles, $user->roles)) : ?> <h2><?php the_title(); ?></h2> <?php the_content(); ?> <?php else : ?> <h2>访问受限</h2> <p>很抱歉,您尝试访问的内容仅限某些角色。 <a href="<?php echo wp_login_url($redirect_url); ?>">登录</a>即可访问它。</p> <?php endif; ?> 下面是对代码要点的解释: $allowed_roles = array('subscriber', 'editor', 'author');: 此行创建一个允许角色的数组,指定允许哪些用户角色访问内容 。 您可以自定义此数组以包含您想要允许的角色。



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Discuz! X

GMT+8, 2024-9-22 19:22 , Processed in 0.031250 second(s), 18 queries .

Powered by Discuz! X3.5

Copyright © 2001-2022 Tencent Cloud.

快速回复 返回顶部 返回列表