Die Top 5-Taxonomiebegriffe basierend auf der Anzahl der Posts auflisten

Eine meiner Taxonomien ist “Team” und eine andere ist “Spieler”. Ich versuche, Top-5-Taxonomie basierend auf einer Reihe von heutigen Post aufzulisten. Bitte lassen Sie mich wissen, wie ich das tun kann.

Solutions Collecting From Web of "Die Top 5-Taxonomiebegriffe basierend auf der Anzahl der Posts auflisten"

Hier habe ich eine SQL-Abfrage-basierte function für Sie geschrieben. Sie können es auch verwenden, um die Top-Taxonomiebegriffe basierend auf dem Datumsbereich zu erhalten. Hier ist es-

function the_dramatist_get_taxonomy_based_on_date_range_and_post_count( $args = array() ) { global $wpdb; $default_args = array( 'taxonomy' => 'category', 'start_date' => date('Ym-d'), 'end_date' => date('Ym-d', strtotime('tomorrow')), ); $args = wp_parse_args( $args, $default_args ); $sql = $wpdb->prepare("SELECT {$wpdb->prefix}terms.term_id AS terms, {$wpdb->prefix}terms.name AS name, {$wpdb->prefix}terms.slug AS slug, {$wpdb->prefix}term_taxonomy.taxonomy AS taxonomy, COUNT({$wpdb->prefix}posts.id) AS posts FROM {$wpdb->prefix}posts INNER JOIN {$wpdb->prefix}term_relationships ON ( {$wpdb->prefix}posts.id = {$wpdb->prefix}term_relationships.object_id ) INNER JOIN {$wpdb->prefix}term_taxonomy ON ( {$wpdb->prefix}term_relationships.term_taxonomy_id = {$wpdb->prefix}term_taxonomy.term_taxonomy_id ) INNER JOIN {$wpdb->prefix}terms ON ( {$wpdb->prefix}term_taxonomy.term_id = {$wpdb->prefix}terms.term_id ) WHERE {$wpdb->prefix}term_taxonomy.taxonomy = '%s' AND {$wpdb->prefix}posts.post_date BETWEEN '%s' AND '%s' GROUP BY terms ORDER BY posts DESC", array( $args['taxonomy'], $args['start_date'] . ' 00:00:00', $args['end_date'] . ' 00:00:00', ) ); return $wpdb->get_results($sql); } 

Für Ihre jetzige Nutzung sollten Sie es wie unten verwenden-

 $team_tax_terms = the_dramatist_get_taxonomy_based_on_date_range_and_post_count(array('taxonomy' => 'team')); $players_tax_terms = the_dramatist_get_taxonomy_based_on_date_range_and_post_count(array('taxonomy' => 'players')); 

Diese $team_tax_terms und $players_tax_terms geben dir die Begriffe term_id , slug , name und post_count . Und es wird von post_count in absteigender Reihenfolge sortiert, das heißt, die Begriffe mit den meisten Posts erscheinen oben. Ich denke, du solltest eine print_r bevor du diese function verwendest. Dadurch wird Ihnen die function Struktur der Daten zurückgeben klar.

Diese Methode wird getestet. Ich habe es persönlich getestet. Hoffe das hilft dir.