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

时间:2015-10-19 01:50:37

标签: wordpress custom-post-type

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

我已经看到很多关于如何限制管理信息中心中的帖子的答案,但前端没有,因为大多数帖子通常都是公开的。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分: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模板上运行完全相同的逻辑并显示授权消息,而不是帖子标题,内容等。

希望这能指出你正确的方向。