Đếm số lượng bài đăng (loại bài đăng tùy chỉnh) Vấn đề truy vấn


11

Tôi đang cố gắng đếm số lượng tổng số bài đăng của loại "công việc" tùy chỉnh. Truy vấn của tôi chỉ trả về "0" khi tôi biết có bài viết. Tôi không nghĩ rằng nó đang kiểm tra xem loại bài đăng có bài viết không, nhưng tôi không biết tại sao ... có ý tưởng nào không?

<?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 } ?>

Là một lưu ý phụ, bạn đã thử đếm ($ jobs) hoặc print_r ($ jobs) chỉ để xem kết quả ban đầu của truy vấn?
tái phát hiện

không, chỉ cần thử và nó không có gì hữu ích.
Dan Lee

Câu trả lời:


38

Các wp_count_postshàm có tham số $typecho bài loại để đếm, bạn nên sử dụng tham số này nếu bạn muốn nhận được số lượng việc làm

như vậy

$count_posts = wp_count_posts( 'jobs' )->publish;

Đó là công việc!
Dan Lee

Tôi rất vui vì nó đã giúp
Mamaduka

Bạn cần chấp nhận câu trả lời này, bằng cách nhấp vào dấu chọn bên dưới số phiếu, ở góc trên bên trái của câu trả lời.
Chip Bennett

-1

Thay thế chúng bằng meta_key và meta_value của bạn:

$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>";

Đó là một thực tế rất xấu khi sử dụng sql đơn giản trong mã của bạn. Có rất nhiều chức năng bao bọc WP làm điều tương tự và thậm chí nhiều hơn.
NoSense
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.