将前端视图限制为发布作者(和管理员)

问题描述 投票:0回答:2

我有一个自定义帖子类型(审核)。我试图使每个帖子只能由帖子作者和管理员在前端查看。因此,从本质上讲,私人帖子仅适用于与帖子作者ID和管理员匹配的登录用户。

我已经看到了很多有关如何限制管理仪表板中帖子的答案,但对于前端没有一个答案,因为大多数帖子通常都是公开的。

非常感谢您的帮助!

wordpress custom-post-type
2个回答
2
投票

我会说,方法取决于您希望用户查看他们是否被拒绝访问该帖子。您是否要显示一条消息,说您无法查看此帖子?还是抛出404?

如果您想抛出404,可以使用template_redirect操作钩。

add_action('template_redirect', 'hide_from_unauth_users');

function hide_from_unauth_users() {

    $author = get_the_author();
    $user = wp_get_current_user();
    $is_author = "some logic to determine if this is the author";

    if( current_user_can('administrator') || ! is_user_logged_in() || ! $is_author ) {
        //throw 404 and include 404.php template
    }

}

如果要向用户显示消息,则只需在实际的single.php模板上运行与上面完全相同的逻辑,并显示授权消息,而不是帖子标题,内容等。

希望这会为您指明正确的方向。


0
投票

如何为自定义帖子类型自定义此功能我创建了一个Custom帖子类型,它可以由USERS提交在正面,并且只需要提交该帖子的用户才能在正面看到它。我在前面使用Pods Custom帖子类型和Caldera Form。

© www.soinside.com 2019 - 2024. All rights reserved.