技术成就梦想
努力展现自我

WordPress 只给非管理员用户看具有特定标签的文章

内部搭建的博客可能有这么一种情况,组内的大部分博客内容需要保密,但是某些博客需要分享给其他同事查看。

只需要将下面的代码加入到 function.php 文件,即可实现所有用户可以查看带有 public 标签的文章,访问其他文章一律需要管理员用户,其他用户访问均返回 404。

function my_template_redirect() {
    if ( is_home() && !is_user_logged_in() ) {
        wp_redirect( wp_login_url() );
        exit;
    }
    // 检查是否在访问单一文章页面
    if ( is_singular() ) {
        $post_id = get_queried_object_id(); // 获取当前文章ID
 
        // 检查文章是否为公开文章,如果不是,检查用户是否登录
        if ( ! has_tag( 'public', $post_id ) && ! is_user_logged_in() ) {
            wp_redirect( wp_login_url( get_permalink() ) ); // 重定向到登录页面
            exit;
        }
    }
    // 非管理员用户登陆,也不可查看文章
    if ( is_user_logged_in() ) {
        $user = wp_get_current_user(); // 获取当前用户对象
 
        // 检查用户是否为管理员
        if ( ! current_user_can( 'manage_options' ) ) {
            // 如果不是管理员,则将文章设置为空
            global $wp_query;
            $wp_query->post = null;
            $wp_query->is_page = false;
            $wp_query->is_singular = false;
            $wp_query->set_404(); // 设置为404错误页面
            status_header(404);
            nocache_headers();
        }
    }
}
add_action( 'template_redirect', 'my_template_redirect' );
赞(0) 打赏
未经允许不得转载:鸿华工作室 » WordPress 只给非管理员用户看具有特定标签的文章

鸿华网络工作室,收集各类技术类优秀文章,少走弯路学习

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

NAS数据存储中心鸿华在线音乐

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

微信扫一扫

登录

找回密码

注册