在WordPress中,如果你想限制未注册用户只能查看特定分类的文章,你可以使用以下代码。这段代码会检查用户是否已登录,并根据你的设置决定是否允许访问。将以下内容添加到你的主题的`functions.php`文件中:
“`php
function restricted_access_to_categories() {
// 允许访问的分类ID,这里我们设置为3和2
$allowed_categories = array(3, 2);
// 如果用户未登录并且不在允许的分类中,重定向到登录页面
if (!is_user_logged_in() && !in_array(get_query_var(‘cat’), $allowed_categories) && !is_home()) {
auth_redirect();
exit();
}
}
// 使用template_redirect钩子来应用这个功能
add_Action(‘template_redirect’, ‘restricted_access_to_categories’, 1);
“`
这段代码的工作原理是,当用户尝试访问非首页且不属于`$allowed_categories`中的分类时,如果他们未登录,系统会将他们重定向到登录页面。如果你想要反转这个逻辑,即限制访问特定分类,只需将`!in_array`改为`in_array`即可。
请注意,确保将`$allowed_categories`数组中的数字替换为你需要限制访问的分类ID。如果你希望允许访问所有分类,只需删除这一行或者将其设置为空数组:`$allowed_categories = array();`。
记得保存`functions.php`文件后,此更改将在网站上立即生效。