投稿数のカウント(カスタム投稿タイプ)クエリの問題


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)を試しましたか?
赤い音楽院

いいえ、試してみましたが、何も役に立ちません。
ダン・リー

回答:


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 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.