Benutzerdefinierte Abfrage num_rows gibt den falschen Betrag zurück

Also habe ich eine benutzerdefinierte Abfrage, die alle Beiträge in einer bestimmten Kategorie abruft. Ich versuche, die Anzahl der zurückgegebenen Zeilen zu erhalten, aber es gibt mir die falsche Nummer.

Anstelle von 11 bekomme ich 14. Weiß jemand warum?

get_results($wpdb->prepare(" SELECT * FROM $wpdb->posts LEFT JOIN userContests ON ($wpdb->posts.ID = userContests.contestID) LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) WHERE $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' AND $wpdb->posts.post_date term_taxonomy.taxonomy = 'category' AND $wpdb->term_taxonomy.term_id IN(3) ORDER BY $wpdb->posts.post_date DESC "), OBJECT); /* $rows = $wpdb->num_rows; get_var($wpdb->prepare(" posts LEFT JOIN userContests ON ($wpdb->posts.ID = userContests.contestID) LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) WHERE $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' AND $wpdb->posts.post_date term_taxonomy.taxonomy = 'category' AND $wpdb->term_taxonomy.term_id IN(3) ORDER BY $wpdb->posts.post_date DESC")); */ echo "Number of rows = " .$rows; ?> 

Meine Arbeit scheint eine Verschwendung von Ressourcen zu sein. Gibt es etwas effizienteres?

Solutions Collecting From Web of "Benutzerdefinierte Abfrage num_rows gibt den falschen Betrag zurück"

Wenn Sie die Gesamtzahl aller veröffentlichten Posts in einer bestimmten Kategorie anzeigen möchten, können Sie dies versuchen.

 $all_posts = new WP_Query( array( 'posts_per_page' => -1, 'post_status' => 'publish', 'cat' => 3 ) ); echo $all_posts->post_count; 

oder

 $all_posts = new WP_Query( array( 'posts_per_page' => -1, 'post_status' => 'publish', 'category_name' => 'uncategorized' ) ); echo $all_posts->post_count; 

Stellen Sie sicher, dass Sie den Kategorienamen oder die Kategorie mit der gewünschten Kategorie ersetzen.