web-dev-qa-db-fra.com

Nombre total de requêtes

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>&nbsp;<?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.";
}
?>
1
Joanna Mikalai

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.


Pour votre code mis à jour

(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!

2
hwl

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>&nbsp;<?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.";
}
?>
0
Sam