कैसे फ़ाइल को शामिल भीतर सही POST_COUNT और found_posts पाने के लिए

वोट
0

मैं एक फ़ाइल जो मुझे एक वर्ग लटकती का उपयोग कर अपनी पोस्ट प्रश्नों फिल्टर करने के लिए अनुमति देता है बनाया है। मैं पाने के लिए कोशिश कर रहा हूँ post_countऔर found_postsगतिशील रूप से तो मैं प्रदर्शित कर सकते हैं Showing 6 out of 12 Posts, उदाहरण के लिए। मैं एक कस्टम WP_Query के साथ एक कस्टम पृष्ठ टेम्पलेट पर इस फिल्टर शामिल कर रहा हूँ, लेकिन मैं हो रही है Showing 1 out of 1 Postsवहाँ जा रहा है 10+ पदों के बावजूद। मेरा मानना है कि कारण यह इस कर रहा है क्योंकि फिल्टर शामिल अपने कस्टम पोस्ट क्वेरी एक पृष्ठ क्वेरी के बजाय उपयोग कर रहा है। मैं इस ताकि फिल्टर अपने कस्टम पोस्ट क्वेरी का उपयोग करता है अद्यतन करने के बारे में कैसे जा सकते हैं?

इंक / filter.php:

<?php
    global $wp_query;
    $count = $wp_query->post_count;
    $total = $wp_query->found_posts;
?>

<div class=container>
    <div class=row>
        <div class=col>
            <?php $get_categories = get_categories(); ?>
            <select>
                <option selected disabled>Select category</option>
                <option value=all>All</option>
                <?php
                    if ($get_categories) :
                        foreach ($get_categories as $cat) :
                    ?>
                    <option value=<?php echo $cat->term_id; ?>>
                        <?php echo $cat->name; ?>
                    </option>
                    <?php endforeach; 
                        endif;
                    ?>
            </select>
            <div class=shown-posts>Showing <span class=visible-posts><?php echo $count; ?></span> of <span class=total-posts><?php echo $total; ?></span> posts</div>
        </div>
    </div>
</div>

और यहाँ अपने कस्टम पृष्ठ टेम्पलेट है:

<?php get_header();?>
<?php 
    $posts = new WP_Query(array(
        'post_type' => 'post'
    ));
?>
<?php if($posts->have_posts()): ?>
    // Here's where I'm including the filter file
    <?php get_template_part( 'inc/filter' ); ?>
    <div class=container post-container>
        <div class=row row-eq-height>
            <?php while ($posts->have_posts()) : $posts->the_post();
                the_title();
            endwhile; ?>
        </div>
    </div>
<?php endif; ?>
02/12/2019 को 23:56
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
1

टेम्पलेट्स के लिए चर पारित करने के लिए सही तरीका शामिल के माध्यम से get_template_part()उन्हें वर्डप्रेस में जोड़ने के लिए है query_vars

तो इंक में / filter.php इस सब को दूर ...

<?php
    global $wp_query;
    $count = $wp_query->post_count;
    $total = $wp_query->found_posts;
?>

तब मुख्य टेम्पलेट जोड़ने में ...

<?php 
    $posts = new WP_Query(array(
        'post_type' => 'post'
    ));

    set_query_var( 'count', $posts->post_count );
    set_query_var( 'total', $posts->found_posts );
?>
03/12/2019 को 00:21
का स्रोत उपयोगकर्ता

वोट
0

में गणना के बदले इंक / filter.php रहे हैं:

<?php
    $count = $posts->post_count;
    $total = $posts->found_posts;
?>

आप सही हैं कि वैश्विक WP_Query वस्तु इस सब से युक्त एक पृष्ठ पर इंगित कर रहा है। एक नया WP_Query instantiating वैश्विक WP_Query पर हावी नहीं होता । अंत में, ध्यान दें कि अपने दायरे परिवर्तन के बारे में कुछ भी नहीं है जब आप फिल्टर फ़ाइल शामिल - तो, बस का उपयोग करते रहने $postsचर कि आप पहले से ही सेटअप।

03/12/2019 को 00:34
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more