게시물 수 계산 (사용자 지정 게시물 유형) 쿼리 문제


11

사용자 정의 게시물 유형 "작업"의 총 게시물 수를 계산하려고합니다. 게시물이 있다는 것을 알면 쿼리가 "0"을 반환합니다. 게시물 유형에 게시물이 있는지 확인하고 있다고 생각하지 않지만 왜 ... 아이디어가 있는지에 대한 우둔합니다.

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

참고로 count ($ jobs) 또는 print_r ($ jobs)을 사용하여 쿼리의 원래 결과를 보셨습니까?
— redconservatory

아니요, 방금 시도했지만 유용한 것은 없습니다.
— Dan Lee

답변:


38

이 wp_count_posts함수에는 $type계산할 게시물 유형에 대한 매개 변수가 있습니다. 작업 수를 얻으려면이 매개 변수를 사용해야합니다.

이렇게 :

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

그것은 일을한다!
— Dan Lee

도움이되어 기쁘게 생각합니다
— Mamaduka

답변의 왼쪽 상단에있는 투표 수 아래에있는 확인 표시 를 클릭하여이 답변 을 수락 해야합니다 .
— 칩 베넷

-1

meta_key 및 meta_value로 바꾸십시오.

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

코드에서 일반 SQL을 사용하는 것은 매우 나쁜 사전 조치입니다. 동일한 작업을 수행하는 많은 WP 래퍼 함수가 있습니다.
— NoSense
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.