टूटा हुआ? WP_Query और "अटैचमेंट" एक पोस्ट प्रकार के रूप में


18

मेरे पास एक गैलरी है जो एक पृष्ठ से जुड़ी है। उस पृष्ठ पर, मैं निम्नलिखित क्वेरी चला रहा हूं:

$events_gallery = new WP_Query( // Start a new query for our videos
array(
    'post_parent' => $post->ID, // Get data from the current post
    'post_type' => 'attachment', // Only bring back attachments
    'post_mime_type' => 'image', // Only bring back attachments that are images
    'posts_per_page' => '3', // Show us the first three results
    'status' => 'inherit', // Inherit the status of the parent post 
    'orderby' => 'rand', // Order the attachments randomly  
    )
);

मैंने काफी कुछ तरीके प्रयोग किए हैं और किसी कारण से, मुझे वापस लौटने के लिए अटैचमेंट नहीं मिल सकते हैं। क्या में यहां कुछ भूल रहा हूँ?

अपडेट करें*

मुझे सही दिशा में इशारा करने के लिए वोक का धन्यवाद।

यह पता चला है कि मैं "post_status" के बजाय "स्थिति" का उपयोग कर रहा था। कोडेक्स ने "अटैचमेंट" पोस्ट प्रकार के अपने इन-रेफरेंस स्पष्टीकरण में उदाहरण के रूप में "स्टेटस" का इस्तेमाल किया था। मैंने इसके बजाय "post_status" संदर्भ के लिए कोडेक्स को अपडेट किया। सही कोड इस प्रकार है:

$events_gallery = new WP_Query( // Start a new query for our videos
array(
    'post_parent' => $post->ID, // Get data from the current post
    'post_type' => 'attachment', // Only bring back attachments
    'post_mime_type' => 'image', // Only bring back attachments that are images
    'posts_per_page' => '3', // Show us the first three results
    'post_status' => 'inherit', // Attachments default to "inherit", rather than published. Use "inherit" or "any".
    'orderby' => 'rand', // Order the attachments randomly  
    )
);  

मुझे आश्चर्य है कि पोस्ट_स्टैटस के बीच अंतर 'शून्य' बनाम 'विरासत' के लिए क्या तय किया जा रहा है
वोक

आपने मुझे 'post_status' => 'inherit' धन्यवाद के साथ बहुत दर्द से बचाया !
पाट

जवाबों:


14

ये क्वेरी पैरामीटर मैं उपयोग कर रहे हैं ... मेरे लिए काम करता है जब मैं परिणामों के माध्यम से पाश

array(
                'post_parent' => $post->ID,
                'post_status' => 'inherit',
                'post_type'=> 'attachment',
                'post_mime_type' => 'image/jpeg,image/gif,image/jpg,image/png'                  
            );

13

में जोड़ें $args, यह महत्वपूर्ण है।

'post_status' => 'any'

ऐसा न करें: 'post_status' => null

यह महत्वपूर्ण है क्योंकि अटैचमेंट्स में a नहीं है post_status, इसलिए डिफ़ॉल्ट मान के लिए post_status, publishedकोई अनुलग्नक नहीं मिलेगा।


कृपया केवल एक पंक्ति या दो कोड पोस्ट करने के बजाय उत्तर को समझाने का प्रयास करें।
s_ha_dum

हां, यह कैसे काम करता है? जब तक मैंने इसे नहीं जोड़ा, मुझे अपने संग्रह पृष्ठ में दिखाने के लिए मेरा लगाव नहीं मिल सका।
क्लेयर

0

यह उत्पन्न होने वाली क्वेरी को देखते हुए, यह एक प्रकार का बग प्रतीत होता है। 'स्थिति' => 'वंशानुक्रम' की व्याख्या माता-पिता की स्थिति के रूप में की जाती है, जब अनुलग्नक के लिए db में प्रविष्टि का शाब्दिक अर्थ 'विरासत' होता है।

WP_Query के स्थान पर get_children का उपयोग करने के लिए एक विकल्प है।


0

मैं उन सभी छवियों को प्रदर्शित करने में सक्षम हूं जो इस कोड का उपयोग करके किसी पोस्ट से जुड़ी हुई हैं।

<?php
$args = array( 'post_type' => 'attachment', 'orderby' => 'menu_order', 'order' => 'ASC', 'post_mime_type' => 'image' ,'post_status' => null, 'post_parent' => $post->ID );
$attachments = get_posts($args);
    if ($attachments) {
    foreach ( $attachments as $attachment ) { ?>
      <img src="<?php echo wp_get_attachment_url( $attachment->ID , false ); ?>" />
<?php   }
    } ?>

और मूल पूर्ण आकार की छवि के URL को प्रतिध्वनित करने के लिए, आप उस छवि को बंद कर सकते हैं

<?php echo wp_get_attachment_url( $attachment->ID , false ); ?>

उम्मीद है कि यह एक दृष्टिकोण है जिसे आप करने की कोशिश कर रहे हैं।


क्या इसके साथ पृष्ठ पर अंक लगाना काम करता है? और क्या आप अपना शेष आउटपुट कोड दिखा सकते हैं? मैं वास्तव में पृष्ठ पर मौजूद अनुलग्नकों को पृष्ठांकित करने के लिए एक थीम गैलरी को फिर से कोड करने के बीच में हूं। धन्यवाद!

अगर मैं 4 छवियों को एक पोस्ट पर अपलोड करता हूं, और मैं इसे मुख्य सामग्री प्रविष्टि div में जोड़ देता हूं, तो यह केवल 4 छवि टैग को थूक देगा। प्रत्येक का src = मूल बड़े छवि आकार की ओर ले जाएगा। पृष्ठांकन इस के साथ काम नहीं करता है, क्योंकि यह किसी भी और सभी छवियों को बाहर निकालता है जो पोस्ट से जुड़ी हैं।
चाड वॉन लिंड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.