仅显示您是其作者的页面

时间:2021-12-17 作者:Waterfall

我试图只显示用户是管理员以外任何角色的作者的页面。下面的代码似乎将站点置于无限循环中,它最终会消亡。

add_action( \'load-edit.php\', function() 
{
    global $typenow;
    
    if( \'page\' !== $typenow )
        return;
    
    if( current_user_can(\'add_users\') )
        return;
    
    if( !isset( $_GET[\'post_status\'] ) && !isset( $_GET[\'all_posts\'] ) )
    {
        wp_redirect( admin_url(\'edit.php?author_name=joe&post_type=page\') );
        exit();
    }   
});

1 个回复
SO网友:FS-GSW

为了只显示用户是作者的页面,我使用pre_get_posts 更改查询的操作。

add_action( \'pre_get_posts\', function ( $wp_query ) { 
    
    $user = wp_get_current_user();
    global $pagenow;

    if ( !empty($user->roles) ) {

        // BackEnd AND Entity "Page" AND "any role other than administrator" AND not New post
        if ( is_admin() && \'page\' == $wp_query->query[\'post_type\'] && !in_array( \'administrator\', (array) $user->roles ) && !in_array($pagenow, [\'post.php\', \'post-new.php\']) ) {
            $wp_query->set( \'author\', $user->ID );
            add_filter( \'views_edit-page\', \'__return_empty_array\' ); // To hide filters in top of the list page ( All(X) | Publish(X) | Draft(X) )
        }

    }
});

相关推荐

404 on paginated blog pages

我们正在运行WP 5.6和Beaver Builder 2.4.1.3(Pro)。这是一个多站点安装,我们在主站点上有问题。我们的博客主页加载得很好:https://www.awana.org/blog但后续页面返回404:https://www.awana.org/blog?page=2https://www.awana.org/blog?page=3https://www.awana.org/blog?page=4等等根据博客主页底部的文字,我们应该有60页的帖子。我打开了WP仪表板,查看了帖子。果然