如果用户不是帖子的作者,则重定向到URL

时间:2019-05-17 01:50:52

标签: wordpress roles

我正在寻找一种在查看任何出版物(出版物作者除外)时重定向的方法。

“作者”和“ custom_role”站点中有两个角色。这最后一个角色可以看到全部。 作者的角色只能看到自己的角色,其余重定向。 我已经尝试了一段时间,在上面的代码中我正在工作,但是它不起作用,我也不知道为什么

非常感谢!

add_action( 'pre_get_posts', function() {
if( is_author() )
{
    if( ! is_user_logged_in() )
    {
        wp_redirect( 'https://aaa.com/custom' );
        exit;
    }

    $author = get_queried_object();

    if( $author->ID != get_current_user_id() )
    {
        wp_redirect( get_author_posts_url( 
 get_current_user_id() ) );
        exit;
    }

}
} );

1 个答案:

答案 0 :(得分:0)

首先,is_author()用于检查当前页面是否为作者存档页面。请检查以下示例。这可能不是确切的问题,但可能会有所帮助。在单个帖子中,比较帖子作者和当前用户ID。如果它们不相同,则将其重定向到主页。如果这些ID相同,则当前用户也是帖子作者,因此将允许当前用户查看页面。

add_action( 'get_header', 'wpso_author_redirection' );

function wpso_author_redirection() {
    if ( is_singular() ) {
        $current_post_details = get_post( get_the_ID(), ARRAY_A );
        $user_id = get_current_user_id();
        if ( $user_id !== absint( $current_post_details['post_author'] ) ) {
            wp_redirect( home_url() );
        }
    }
}