So zeigen Sie Benutzer mit Posts an, die zwischen zwei Daten veröffentlicht wurden (Sortiert nach Post-Count)

Ich versuche, eine Liste von Benutzern zu erstellen, die Beiträge innerhalb von zwei angegebenen Daten veröffentlicht haben. Meine Versuche, WP_User_query zu verwenden, funktionieren nur für eine Blog-ID und benötigen Zeit zum Laden, da sie viele foreach und if statementen durchlaufen. Es scheint auch, dass nicht alle Benutzer in den Arrays, die ich verwende, gespeichert sind. Ich habe das Gefühl, dass ich es total falsch mache, aber ich kann keine WordPress-function finden, die mir helfen könnte.

Ich möchte das mit einer wpdb-Abfrage machen, aber ich weiß nicht, wie man nach allen Benutzern und ihrer Postzählung sucht.

Mein aktueller Code ist dies:

 $blogids = array( 2, 4, 5, 6 ); global $blog_id; $startdate = "2012-03-01"; $enddate = "2012-04-31"; //$wp_user_search = new WP_User_Query( array( 'role' => 'subscriber', 'blog_id' => $blog_id, 'fields' => array('ID', 'user_nicename', 'display_name') ) ); $userlist = array(); $usercountlist = array(); foreach($blogids as $blogid) { $wp_user_search = new WP_User_Query( array( 'role' => 'subscriber', 'blog_id' => $blogid, 'fields' => array('ID', 'user_nicename', 'display_name') ) ); $usernicenames = $wp_user_search->get_results(); foreach($usernicenames as $usernicename){ $user_count = $wpdb->get_var( $wpdb->prepare( " SELECT COUNT(ID) FROM ". $wpdb->base_prefix . $blogid ."_posts WHERE post_status = 'publish' AND post_type = 'post' AND post_author = ".$usernicename->ID." AND post_date >= '".$startdate."' AND post_date  0 " ) ); //$userlist[$user_count] = $usernicename->user_nicename; if($user_count) : $userlist[] = $usernicename->display_name; $usercountlist[] = $user_count; endif; } } $userlist = array_combine($userlist, $usercountlist); $str = serialize($userlist); // Serialises the array $array and store as $str $strenc = urlencode($str); // Encode the serialised array $temp_folder = str_replace("//", "/", $_SERVER['DOCUMENT_ROOT']."/_temp/"); $file = $temp_folder.'userstats.txt'; file_put_contents($file, $strenc); $content2 = file_get_contents($file); $arr = unserialize(urldecode($content2)); echo "
    "; arsort($arr); $i = 0; foreach ( $arr as $key => $value ) { if($value > 0 && $i < 10): echo "
  1. ".$key." (".$value.")
  2. "; $i++; endif ; } echo "
";

Solutions Collecting From Web of "So zeigen Sie Benutzer mit Posts an, die zwischen zwei Daten veröffentlicht wurden (Sortiert nach Post-Count)"