पदों की संख्या (कस्टम पोस्ट प्रकार) क्वेरी समस्याओं की गणना


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

साइड नोट के रूप में, क्या आपने क्वेरी के मूल परिणामों को देखने के लिए गिनती ($ नौकरियों) या प्रिंट_आर ($ जॉब) की कोशिश की?
redconservatory

नहीं, बस कोशिश की और यह उपयोगी कुछ भी नहीं है।
डैन ली

जवाबों:


38

wp_count_postsकार्य है पैरामीटर $typeपोस्ट प्रकार की गिनती करने के लिए, तो आप इस पैरामीटर का उपयोग करना चाहिए आप नौकरियों की संख्या प्राप्त करना चाहते हैं, तो

इस तरह:

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

यह काम करता है!
डैन ली

मुझे खुशी है कि इसने मदद की
मामादुका

आपको इस उत्तर को स्वीकार करने की आवश्यकता है , जवाब के ऊपरी बाएँ हाथ के कोने में, वोट की गिनती के नीचे स्थित चेकमार्क पर क्लिक करके ।
चिप बैनेट

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

1
अपने कोड में सादे sql का उपयोग करना एक बहुत ही बुरा व्यवहार है। बहुत सारे WP आवरण कार्य हैं जो समान कार्य करते हैं और इससे भी अधिक।
NoSense
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.