Menghitung jumlah posting (jenis posting khusus) Masalah kueri

11

Saya mencoba menghitung jumlah total postingan dari jenis "custom" posting kustom. Permintaan saya hanya mengembalikan "0" ketika saya tahu ada posting. Saya tidak berpikir itu memeriksa bahwa jenis posting memiliki posting, tapi saya tidak mengerti mengapa ... ada ide?

<?php $jobs = new WP_Query(array( 'post_type' => 'jobs' ));?>
<?php if ($jobs->have_posts()) { 

    $count_posts = wp_count_posts()->publish; 
    if ( $count_posts == "1" ) { 
        echo "<h2>There is currently one vacancy...</h2>"; }
    else { echo "<h2>There are currently  $count_posts vacancies...</h2>"; }

} else { ?>
<h2>There are currently no vacancies.</h2>
<?php } ?>
Dan Lee
sumber
Sebagai catatan tambahan, apakah Anda mencoba menghitung ($ jobs) atau print_r ($ jobs) hanya untuk melihat hasil asli dari kueri?
redconservatory
tidak, coba saja dan itu tidak berguna.
Dan Lee

Jawaban:

38

The wp_count_postsfungsi memiliki parameter $typeuntuk posting jenis untuk menghitung, Anda harus menggunakan parameter ini jika Anda ingin mendapatkan jumlah pekerjaan

seperti itu:

$count_posts = wp_count_posts( 'jobs' )->publish;
Mamaduka
sumber
Itu berhasil!
Dan Lee
Saya senang itu membantu
Mamaduka
Anda harus menerima jawaban ini, dengan mengklik tanda centang di bawah penghitungan suara, di sudut kiri atas jawaban.
Chip Bennett
-1

Ganti ini dengan meta_key dan meta_value Anda:

$meta_key = 'x';
$meta_value = '2';

$sql = "SELECT count(DISTINCT pm.post_id)
FROM $wpdb->postmeta pm
JOIN $wpdb->posts p ON (p.ID = pm.post_id)
WHERE pm.meta_key = '$meta_key'
AND pm.meta_value = '$meta_value'
AND p.post_type = 'post'
AND p.post_status = 'publish'
";

$count = $wpdb->get_var($sql);
echo "<p>Count is: $count</p>";
urooj
sumber
Ini adalah praktik yang sangat buruk untuk menggunakan sql sederhana dalam kode Anda. Ada banyak fungsi WP wrapper yang melakukan hal yang sama dan bahkan lebih.
NoSense