Utiliser un plugin de filtre de recherche. J'utilise pour obtenir le nombre total de messages qui existent dans la base de données
$wp_query->found_posts
Toutefois, lorsqu'un utilisateur filtre les résultats sur la page, ce nombre change en fonction du nombre de publications affichées sur le filtre.
Comment puis-je obtenir le nombre total statique de messages qui ne changeraient pas, quel que soit le filtre choisi par l'utilisateur?
Mise à jour: Ceci est mon code de modèle complet. J'ai essayé les réponses ci-dessous mais je ne pouvais pas le faire fonctionner avec mon modèle. Des idées?
if ( $query->have_posts() )
{
?>
<ul id="florefs">
<?php
while ($query->have_posts())
{
$query->the_post();
?>
<li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><i class="x-icon florex x-icon-angle-right" data-x-icon="" aria-hidden="true"></i> <?php the_field('br_name'); ?></a>
<div id="flosex"><span class="fimi"><?php the_field('br_category'); ?></span><span class="flag <?php echo strtolower(get_field('br_heritage')); ?>"></span><span class="fama"><?php the_field('br_heritage'); ?></span></div></li>
<?php
}
?>
</ul>
<div class="filhead">Page <?php echo $query->query['paged']; ?> of <?php echo $query->max_num_pages; ?></div>
<div class="pagination">
<div class="nav-next"><?php previous_posts_link( '<i class="x-icon x-icon-arrow-left" data-x-icon="" aria-hidden="true"></i> Previous page' ); ?></div>
<div class="nav-previous"><?php next_posts_link( 'Next page <i class="x-icon x-icon-arrow-right" data-x-icon="" aria-hidden="true"></i>', $query->max_num_pages ); ?></div>
<?php
/* example code for using the wp_pagenavi plugin */
if (function_exists('wp_pagenavi'))
{
echo "<br />";
wp_pagenavi( array( 'query' => $query ) );
}
?>
</div>
<div id="prasti"><span class="prase">PROBLEM HERE</span><span class="praso"><?php echo $query->found_posts; ?></span><span class="prasif">NEEDS</span><span class="prasi">CHANGE</span></div>
<?php
}
else
{
echo "There are no results for your selected criteria.";
}
?>
Comment puis-je obtenir le nombre total statique de messages qui ne changeraient pas, quel que soit le filtre choisi par l'utilisateur?
Vous recherchez peut-être wp_count_posts()
: Codex: WP COUNT POSTS
Exemple obtenant le numéro de tous les articles publiés:
function get_all_them_posts(){
$count_posts = wp_count_posts();
$published_posts = $count_posts->publish;
return $published_posts;
}
Dans le modèle:
<?php echo get_all_them_posts(); ?>
Pour le type de message personnalisé:
Functions.php:
function get_all_them_cpt_posts(){
$post_type = 'your_post_type_slug_here';
$count_posts = wp_count_posts( $post_type );
$published_posts = $count_posts->publish;
return $published_posts;
}
Dans le modèle:
<?php echo get_all_them_cpt_posts(); ?>
Comme indiqué par Sam et dans cette réponse WPSE plus ancienne , $found_posts
fait référence à ce que la requête contient. $post_count
fait référence à ce qui est affiché (souvent le nombre défini dans le paramètre posts_per_page). Je pense que wp_count_posts()
est ce que vous recherchez.
(Version CPT ci-dessus) D'accord, il serait préférable d'ajouter le premier bloc de code au functions.php de votre thème (ou au thème enfant si vous en utilisez un). Ce:
function get_all_them_posts(){
$count_posts = wp_count_posts();
$published_posts = $count_posts->publish;
return $published_posts;
}
Ensuite, où vous souhaitez avoir le nombre total de messages dans le modèle, remplacez:
<?php echo $query->found_posts; ?>
Avec:
<?php echo get_all_them_posts(); ?>
Cette ligne appellera la fonction ajoutée au fichier functions.php. En procédant ainsi, vous pourrez l’utiliser dans d’autres fichiers de modèle sans avoir à réécrire cette fonction à chaque fois. J'espère que ça aide!
Le $ wp_query -> $ found_posts changera une fois que vous aurez filtré car le plug-in est en train de changer la requête afin que found_post change à chaque fois.
$wp_query->$post_count
// The number of posts being displayed.
$wp_query->$found_posts
// The total number of posts found matching the current query parameters
// Total post amount in database
$count_posts = wp_count_posts();
// Total post amount in database of custom post type called cars
// $count_posts = wp_count_posts('cars');
// Total count of the published amount of above
$published_posts = $count_posts->publish;
Votre code ci-dessous devrait être
if ( $query->have_posts() )
{
?>
<ul id="florefs">
<?php
while ($query->have_posts())
{
$query->the_post();
?>
<li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><i class="x-icon florex x-icon-angle-right" data-x-icon="" aria-hidden="true"></i> <?php the_field('br_name'); ?></a>
<div id="flosex"><span class="fimi"><?php the_field('br_category'); ?></span><span class="flag <?php echo strtolower(get_field('br_heritage')); ?>"></span><span class="fama"><?php the_field('br_heritage'); ?></span></div></li>
<?php
}
?>
</ul>
<div class="filhead">Page <?php echo $query->query['paged']; ?> of <?php echo $query->max_num_pages; ?></div>
<div class="pagination">
<div class="nav-next"><?php previous_posts_link( '<i class="x-icon x-icon-arrow-left" data-x-icon="" aria-hidden="true"></i> Previous page' ); ?></div>
<div class="nav-previous"><?php next_posts_link( 'Next page <i class="x-icon x-icon-arrow-right" data-x-icon="" aria-hidden="true"></i>', $query->max_num_pages ); ?></div>
<?php
/* example code for using the wp_pagenavi plugin */
if (function_exists('wp_pagenavi'))
{
echo "<br />";
wp_pagenavi( array( 'query' => $query ) );
}
?>
</div>
<div id="prasti"><span class="prase">PROBLEM HERE</span><span class="praso"><?php echo wp_count_posts(); ?></span><span class="prasif">NEEDS</span><span class="prasi">CHANGE</span></div>
<?php
}
else
{
echo "There are no results for your selected criteria.";
}
?>