隐藏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');
可,即可得到结果如下:
未登录时查看属分类不存在文章,登录即可看到所对应分类的文章。