web-dev-qa-db-fra.com

Ajout de post-comptes au menu (Nav) par programme?

Je suis assez perplexe à ce sujet.

Sans trop solliciter les requêtes, je me demandais quel chemin on pouvait prendre pour créer un menu menant vers une catégorie de publications et afficher entre parenthèses le nombre de nouvelles publications.

Exemple:

Nouvelles (5 nouvelles)
Articles (8 nouveaux)

...et ainsi de suite.

Quel est le moyen le plus efficace d'y parvenir sans exécuter un million de requêtes?

3
user1915665

La fonction get_categories () de WordPress renvoie un tableau d'objets de catégorie, chacun d'eux ayant une propriété "count" pour le nombre de publications de cette catégorie. Donc, quelque chose comme ceci vous donnerait une liste de liens vers les pages de catégories:

$categories = get_categories();

$markup = '<ul>';
foreach( $categories as $category ) {
   $catName = $category->category_nicename;
   $count   = $category->count;
   $url     = get_category_link( $category->cat_ID );

   $markup .= '<li>';
     $markup .= "<a href=\"{$url}\">{$catName} ({$count})</a>";
   $markup .= '</li>';
}
$markup .= '</ul>';

Cela vous permettrait d'afficher un compte en utilisant une seule requête. Je suis sûr qu'il existe un moyen de trouver un nombre de "nouvelles" publications en utilisant une requête personnalisée plus complexe au lieu de get_categories (), mais je préférerais sans doute une surcharge supplémentaire liée à la création d'une autre requête pour chaque catégorie, plutôt que d'essayer tout faire en une seule requête. Appelez-moi paresseux.

1
Matt Dietsche

Si vous appelez wp_list_categories et ajoutez le paramètre 'show_count'=> 1, le nombre d'articles dans chaque catégorie sera renvoyé, entre parenthèses.

Pour obtenir une évaluation de date, vous pouvez utiliser les paramètres de date dans WP_Query.

0
Lea Cohen