隐藏wordpress指定目录使其登录才可查看

隐藏wordpress指定目录使其登录才可查看?

实现方案:
在function.php文件中添加。

ob_start();
function yincangwenzhang($query) {
    $delete_cat_yc = array('-72', '-4', '-5'); // 这里的数字需要替换为你想要隐藏的分类的id
    $delete_cat = array('72', '4', '5');
    if (!is_user_logged_in()) {
        // 当用户未登录访问文章页面跳转404
        if (is_single() && in_category($delete_cat)) {
            wp_safe_redirect(home_url() . '/404');
            exit;
        }
        // 在首页和其他页面隐藏文章
        if (get_current_user_id() == 0) { // 用户未登录ID是为0的,隐藏文章
            $query->set('cat', $delete_cat_yc);
        }
    }
    return $query;
}
add_filter('pre_get_posts', 'yincangwenzhang');

当使用时修改如下代码即可

$delete_cat_yc = array('-72', '-4', '-5');
$delete_cat = array('72', '4', '5');

比如要隐藏的分类id为1,即修改为

$delete_cat_yc = array('-1');
$delete_cat = array('1');

可,即可得到结果如下:

未登录时查看属分类不存在文章,登录即可看到所对应分类的文章。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注