如何解决WordPress:添加或启用用户/客户注册?并使内容仅在登录时可见?
我目前有一个非常基本的 WordPress 网站,只有几个页面。
没有用户帐户,只有我自己的管理员帐户。
我在找什么:
-
访问者可以注册,即注册他们自己的客户帐户。我不需要详细的帐户信息,只需要一个电子邮件地址,也许还有姓名和/或公司名称。
-
限制某些内容仅供登录访问者访问。最好当有人没有登录时,我希望页面显示“此信息仅供客户访问 - 在此处登录或注册”。如果有人登录,则显示实际内容。
警告:我正在处理一个 Woocommerce 网站,我想限制登录用户的其中一项内容是商店页面。但据我所知,这不是 Wordpress 中具有常规内容的普通页面。我猜它的内容是通过 Woocommerce 插件生成或控制的。那么有没有办法解决这个问题?
我认为这是 WordPress 中非常常见的模式,这可能非常简单。但作为一个零经验的 WordPress 新手,我不知道如何/从哪里开始。
解决方法
用户注册
这些是 WordPress 的默认行为。可以通过管理控制面板启用注册。
- Settings
→
General→
Membership,✓ 任何人都可以注册
一旦完成,用户就可以注册@http://localhost/www/wordpress/wp-login.php?action=register
条件标签
条件标签可用于您的模板文件中,以根据当前页面匹配的条件更改内容的显示。它们告诉 WordPress 在特定条件下显示什么代码。条件标记通常与 PHP if
/else
条件语句一起使用。
可以通过 is_user_logged_in()
函数将内容限制为登录用户。
确定当前访问者是否为登录用户。
有关此和类似主题功能的更多信息,请查看主题开发人员手册中的条件标签文章。
用例场景
<?php
if ( is_user_logged_in() ) {
// ... logged-in user content
} else {
// ... non-logged-in user content
};
WooCommerce 条件标签
您可以使用 is_shop()
来确定当前页面是否为商店页面。
在产品存档页面(商店)上返回 true。
通常商店页面是围绕 archive-product.php
页面模板构建的。以下内容应包含 archive-product.php
页面模板中的内容。您不必指定 is_shop
,因为我们正在 archive-product.php
页面模板上构建条件语句。
<?php
if ( ! defined( 'ABSPATH' ) ) {
exit;
};
/**
* Basic logged-in restricted `archive-product.php` page template example.
*/
get_header();
if ( is_user_logged_in() ) {
// ... logged-in user content
} else {
// ... non-logged-in user content
};
get_footer();
模板层次结构
由于您是 WordPress 新手,您应该尝试了解模板层次结构方面的基础知识。你应该参考https://developer.wordpress.org/themes/basics/template-hierarchy/。 WooCommerce 的工作原理相同。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。