Özel bir Wordpress döngüsünün gönderilerini sayma (WP_Query)?


41

Bunu yerleştirmeyi denedim:

    <?php $count = count($custom_posts); ?>
    <h2><?php echo $count; ?></h2>

döngünün sonunda:

      <?php if ( bbp_get_forum_title() == 'Test Forum 1' ) : ?>
            <?php $custom_posts = new WP_Query(); ?>
            <?php $custom_posts->query('post_type=blocks&location=Business and Finance&order=DESC'); ?>
            <?php while ($custom_posts->have_posts()) : $custom_posts->the_post(); ?>
                <div class="ad">
                    <?php the_content(); ?>
                </div>
                <?php $count = count($custom_posts); ?>
                <h2><?php echo $count; ?></h2>
            <?php endwhile; ?>
      <?php endif; ?>

Ancak toplam gönderi yerine bu çıktıyı alıyorum:

Tercüme 1

Lorem ipsum dolor amet sitet, harikası adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim 1

Bunu düzeltmek için herhangi bir öneriniz var mı?

Yanıtlar:


74

Toplam gönderi sayısını almanın doğru yolu:

<?php $count = $custom_posts->found_posts; ?>

http://codex.wordpress.org/Class_Reference/WP_Query#Properties

Düzenleme: @Kresimir Pendic'in cevabını muhtemelen doğru olduğunu kabul ederek post_countsöz konusu sayfa found_postsiçin yayınların sayısı, sorgulamanın gereksinimlerini sayfa numaralandırma olmadan karşılayan tüm yayınların sayısıdır. Düzeltme için teşekkürler.


Teşekkürler! Hey son bir soru. Bu sayıyı, bu döngü dışında olan bir if ifadesi yapmak için nasıl kullanabilirim (döngüden önce). Çünkü sayı yalnızca değişkeni bu döngüden sonra yerleştirdiğimde görüntülenir.
janoChen

4
$ Count = $ custom_posts-> post_count öğesini $ custom_posts-> query () işleminden hemen sonra koyabilirsiniz. $ Custom_posts-> post_count, yalnızca sonuç kümesinin bu 'sayfasında' sonuç sayısını aldığını unutmayın. 'Bütün' sonuç kümesindeki toplam sonuç sayısını almanız gerekirse, $ custom_posts-> found_posts kullanın.
Robert Durgin,

2
Bu cevap çoğu durumda doğru olmayabilir. Post_count yerine found_posts (tüm bulunan mesajlar) kullanın (bu sayfada görüntülenecek mesaj sayısı). Bu yorum gereksizce mantıklı konuşur, fakat sosyal olarak konuşmaz.
Herbert Van-Vliet

1
Bu cevap yanlış. $custom_posts->post_countBu sayfada gösterilen mesajların miktarını döndürür, böylece gösterilecek posts_per_pagekalan tutar daha düşükse, sorgunun değerini veya daha düşük bir değeri gösterir. Doğru cevap <@kresimir-pendic>kullananın cevabı olmalı$custom_posts->found_posts
Infinity Media

42

Manny doğru dokümantasyon sayfasını bağladı ama post_countyanlış. Toplam gönderi sayısı almak WP_Queryiçin "found_posts" kullanın.

<?php

// The Query
$query = new WP_Query( $args );
$total = $query->found_posts;

3
Bu, kabul edilen cevap olmalıdır.
Christine Cooper

1
Bu kesinlikle doğru cevap.
Infinity Media

Ayrıca bunun doğru cevabı olduğunu da onaylıyorum. Bu kabul edilmelidir.
Ben En Aptal
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.