Est-il possible avec les outils intégrés standard de Wordpress d'obtenir que wp_query
ne renvoie que le nombre d'une requête?
À l’heure actuelle, j’ai une requête qui comporte plusieurs méta-requêtes mais ce qui m’intéresse au premier point, c’est le nombre de requêtes.
Je sais que je peux utiliser la propriété found_posts mais la requête elle-même génère une surcharge importante de la part de la requête SELECT *
et renvoie donc l'objet entier.
Je pourrais tout aussi facilement interroger la base de données avec une requête personnalisée à l'aide de $wpdb
, mais j'aimerais utiliser si possible le système de requête intégré.
Je cherchais une réponse à cette question sur SE et Google, mais je suis resté vide.
Si je me suis mal expliqué, faites-le moi savoir et j'essaierai d'élaborer.
À votre santé
Il n’existe pas de fonction intégrée permettant de réaliser ce que vous voulez, du moins pas pour les méta-requêtes compliquées comme celle-ci. Si vous avez besoin d’utiliser des fonctions intégrées pour cela, le mieux sera d’utiliser WP_Query
.
Pour accélérer la requête et ignorer le tableau retourné non désiré de propriétés WP_Post
, et comme vous êtes uniquement intéressé par post count, vous pouvez utiliser les éléments suivants dans vos paramètres dans vos arguments
'fields' => 'ids',
'no_found_rows' => true,
Cela peut même être un peu plus rapide qu'une requête SQL personnalisée et les résultats de WP_Query
sont également mis en cache.
Je sais que vous avez répondu à cette question et, puisque votre question reposait sur l'utilisation de WP_Query
, ma réponse est probablement longue, mais vous pouvez également essayer d'utiliser ceci:
wp_count_posts( $type, $perm );
où $type = post_type (post, page, 'custom-post-type-slug')
et where $perm
= Pour inclure les publications privées lisibles par l'utilisateur actuel, définissez sur 'lisible'
Je l'ai déjà utilisé avec succès dans le passé :)
wp_count_posts('post')->publish -> returns only the count for published posts.