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


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.