top
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!邮件:766378891@qq.com

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


共计 819 个字符,预计需要花费 3 分钟才能阅读完成。

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

只需要将下面的代码加入到 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' );

提醒:本文发布于723天前,文中所关联的信息可能已发生改变,请知悉!

Tips:清朝云网络工作室

THE END
icon
0
icon
分享
icon
二维码
icon
海报
发表评论
评论列表

赶快来坐沙发

晚上好👋, 在属于自己的时间好好放松😌~