WordPress 隐藏指定分类文章登录后可见

这个代码的作用就是,可以让wordpress实现指定的分类文章,登录后才可见,否则是看不到的。

只需要将以下代码,加到主题的functions.php中的<?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;
        }
    //在首页和其他页面隐藏文章
    //$query->is_home()||$query->is_search()||$query->is_archive()
    //上行代码作用同下,不过不知道是什么原因作者页面的文章没有隐藏,带参数也没有用,所以用下面的吧
    if(get_current_user_id()==0){//用户未登录ID是为0的,隐藏文章
    $query->set( 'cat', $delete_cat_yc);
        }
    }return $query;
}
add_filter( 'pre_get_posts', 'yincangwenzhang' );
最后更新 2025-04-12