Get_Users Orderby Page

时间:2018-03-19 作者:LB79

我一直在尝试使用codex修复排序问题get_users(), 但我似乎无法让它工作。

抄本显示我可以设置\'orderby\' => \'post_count\', 但我想更改它,使其按页数排序。看起来应该是很容易改变的(page_count?), 但它不起作用。

有人能给我一些建议吗?

1 个回复
SO网友:Dave Romsey

使用WP_User_Query 以及has_published_posts 参数将结果限制为已发布指定帖子类型的用户。

get_users() 只是一个包装WP_User_Query().

has_published_posts (布尔值/数组)-将帖子类型数组传递给已发布这些帖子类型的用户,以过滤结果。true 是所有公共帖子类型的别名。默认值为null.

以下是针对已发布页面帖子类型的用户的用户查询的基本示例:

// Set up arguments for query.
$args = [
    \'has_published_posts\' => [ \'page\' ], 
    \'orderby\' => \'post_count\',
    \'order\' => \'DESC\',
];

// Create the WP_User_Query object
$user_query = new WP_User_Query( $args );

// Get results.
$users = $user_query->get_results();

// Check for results
if ( ! empty( $users ) ) {
    echo \'<ul>\' . PHP_EOL;

    // Loop through each author.
    foreach ( $users as $user ) {
        // Get all the user\'s data.
        $user_info = get_userdata( $user->ID );
        echo "\\t" . \'<li>\' .
            \'<em>\' . __( \'User ID: \', \'text-domain\' ) . esc_html( $user->ID ) . \'</em> \' .
                esc_html( $user_info->first_name ) . \' \' .
                esc_html( $user_info->last_name ) .
        \'</li>\' . PHP_EOL;
    }

    echo \'</ul>\' . PHP_EOL;
} else {
    echo __( \'No users found\', \'text-domain\' );
}

结束