DigiPress

Highly Flexible WordPress Theme

メニュー

WP 5.9 から get_users() で ‘who’ => ‘authors’ は非推奨になった

WordPress 5.8 までは、寄稿者一覧を取得する際、get_users() 関数のパラメータに 'who' => 'authors' を指定していましたが、WordPress 5.9 から、WP_User_Query クラスに新たに capability クエリが追加され、従来の who パラメータは非推奨になりました。

今までの寄稿者一覧取得例
$args = array(
    'orderby'    => 'post_count',
    'order'      => 'DESC',
    'who'        => 'authors',
);

$authors = get_users( $args );
WP 5.9 での警告

Deprecated: WP_User_Query がバージョン 5.9.0 から非推奨になった引数付きで呼び出されました。who は非推奨です。代わりに capability を使用してください。

WordPress 5.9 からは、'who' => 'authors''capability' => array( 'edit_posts' ) に変更する必要がありますが、WordPress 5.8 までの後方互換を維持するには、以下のように WordPress のバージョンでパラメータを分岐してしばらくは対処する必要があります。

$args = array(
    'orderby'    => 'post_count',
    'order'      => 'DESC',
    'capability' => array( 'edit_posts' ),
);

// Capability queries were only introduced in WP 5.9.
if ( version_compare( $GLOBALS['wp_version'], '5.9-alpha', '<' ) ) {
    $args['who'] = 'authors';
    unset( $args['capability'] );
}

$authors = get_users( $args );
参考
Share / Subscribe
Facebook Likes
Tweets
Hatena Bookmarks
Pinterest
Pocket
Feedly
Send to LINE