web-dev-qa-db-ja.com

登録日別WP_User_Queryユーザー

今日登録したユーザーの数を取得しようとしています。

私はこれを試してみました:

$args = array (
'role'           => 'Subscriber',
'meta_query'     => array(
    array(
        'key'       => 'user_registered',
        'value'     => '2015-01-13 00:00:00',
        'compare'   => '>=',
        'type'      => 'DATE', //also tried DATETIME, TIME
    ),
 ),
);

$user_query = new WP_User_Query( $args );
$user_query->total_users;

しかし、結果は常に0です。

これは動作します:

global $wpdb;
$results = $wpdb->get_results( "SELECT * FROM `wp_users` WHERE `user_registered` >= '2015-01-13 00:00:00'");
echo count($results);

しかし、WP_User_Query()はこれを実行できないはずです。引数に問題がありますか?

3
CiprianD

ユーザー登録日にdate_queryパラメーターを使用するだけです。

$args = array (
    'role'          => 'subscriber',
    'date_query'    => array(
        array(
            'after'     => '2010-01-13 00:00:00',
            'inclusive' => true,
        ),
     ),
);

$user_query = new WP_User_Query( $args );

この部分WP_User_Queryソースコードの、/それはそれを可能にします:

// Date queries are allowed for the user_registered field.
if ( ! empty( $qv['date_query'] ) && is_array( $qv['date_query'] ) ) {
    $date_query = new WP_Date_Query( $qv['date_query'], 'user_registered' );
    $this->query_where .= $date_query->get_sql();
}
4
birgire