2011-03-04 12 views
7

मुझे लगता है कि पोस्ट माता पिता के पन्नों पकड़ लेता है एक कस्टम साइडबार बना लिया है:वर्डप्रेस: ​​प्राप्त post_parent शीर्षक

query_posts("post_type=page&post_parent=6"); 

मैं post_parent (अर्थात "के बारे में") के शीर्षक हड़पने के लिए चाहते हैं। the_title काम नहीं करेगा क्योंकि यह बाल पृष्ठों का शीर्षक है।

मैं post_parent शीर्षक कैसे आउटपुट कर सकता हूं?

उत्तर

6

यह लगता है कि आप पहले से ही माता-पिता पद का आईडी मिल गया है तो आप सिर्फ इस का उपयोग कर सकते हैं:

<?php 
    $parent_post_id = 6; 
    $parent_post = get_post($parent_post_id); 
    $parent_post_title = $parent_post->post_title; 
    echo $parent_post_title; 
?> 

($ parent_post_id पर अपने माता पिता के बाद आईडी डालें)

रेफरी: http://codex.wordpress.org/Function_Reference/get_post

+0

मुझे खेद है कि मैं काफी अनुवर्ती नहीं हूं। मान लीजिए कि मेरी मूल पोस्ट आईडी 6 है। क्या कोड * post_title होना चाहिए; ?> *? यदि हां, तो क्या इसे लूप में होना चाहिए, या एक आसान पूर्ववर्ती गूंज काम करेगा? – Ryan

+0

क्षमा करें, मुझे ऊपर टिप्पणी संपादित करने की अनुमति नहीं दी। उपरोक्त कोड का संपादित संस्करण देखें। इसे लूप में होने की आवश्यकता नहीं है, आप बस कर सकते हैं: ' post_title; echo $ parent_post_title; ?> ' – Demelziraptor

+0

बिल्कुल सही - धन्यवाद! – Ryan

20
echo get_the_title($post->post_parent); 

या

echo get_the_title(X); 

जहां एक्स कोई मान्य पोस्ट/पेज आईडी है।

केवल एक संपत्ति के लिए एक पूर्ण पोस्ट ऑब्जेक्ट प्राप्त करने की आवश्यकता नहीं है।

+1

धन्यवाद! यह अच्छा और साफ है और बस मुझे क्या चाहिए – Zade

+0

आपका स्वागत है। :) – t31os

0

मैंने यह लिखा, यह अभिभावक पद को पकड़ लेगा और उसके बाद माता-पिता के शीर्षक को प्रतिबिंबित करेगा। एक नज़र डालें और मुझे बताएं कि यह आपके लिए काम करता है या नहीं।

https://gist.github.com/1140481

यह भी रूप में अच्छी तरह वर्डप्रेस लूप के बाहर काम करना चाहिए।

यह भी जब वहाँ एक से अधिक माता पिता पदानुक्रम स्तर है उपयोग करने के लिए बचाने के लिए किया जाता है:

1

यह स्वच्छ और अच्छा कोड की जरूरत है।

<?php 

    $current = $post->ID; 

    $parent = $post->post_parent; 

    $grandparent_get = get_post($parent); 

    $grandparent = $grandparent_get->post_parent; 

    ?> 

    <?php if ($root_parent = get_the_title($grandparent) !== $root_parent = get_the_title($current)) {echo get_the_title($grandparent); }else {echo get_the_title($parent); }?>