पेज टेम्प्लेट में पृष्ठ सामग्री कैसे प्रदर्शित करें?


13

मेरी वर्डप्रेस साइट में, मैंने एक कस्टम पेज टेम्प्लेट बनाया, जिसमें एक कस्टम क्वेरी [उपयोग WP_Query()] थी। उस क्वेरी के साथ, मैं पूरी तरह से एक निश्चित श्रेणी के पदों को प्राप्त कर सकता हूं। लेकिन मैं पृष्ठ सामग्री को क्वेरिड पोस्ट के साथ दिखाना चाहता हूं।

बात कुछ इस तरह होगी:
---------------------------

पृष्ठ शीर्षक

पृष्ठ सामग्री

संक्षिप्त पोस्ट शीर्षक

विवादास्पद पोस्ट सामग्री
---------------------------

  • मैं क्या कर सकता हूँ?

2
समस्या क्या है? यह एक पेज टेम्प्लेट है, इसलिए आपके पास पृष्ठ सामग्री तक पहुंच है। उदाहरण के लिए, किसी अन्य अलग क्वेरी के माध्यम से आप किसी विशिष्ट पद तक पहुँच प्राप्त कर सकते हैं, और इस प्रकार इसकी सामग्री का उत्पादन कर सकते हैं। इसलिए?
tfrommen

कृपया मतदान से पहले धैर्य रखें। मैं इसके लिए संघर्ष कर रहा हूं और तब मुझे इसका समाधान मिला। मैंने प्रश्नोत्तर को दूसरों के साथ साझा करने के लिए यहां प्रश्नोत्तर करने की कोशिश की - मुझे लगता है कि यह इस तथ्य को स्पष्ट कर देगा कि मैं इसे किस तरह से देख रहा हूं। आशा है कि प्रश्नोत्तर आपके लिए स्पष्ट है।
मयिनुल इस्लाम

सबसे पहले, मैं था नहीं अपने प्रश्न downvote। दूसरे, हमारे साथ अपने ज्ञान को साझा करने के लिए धन्यवाद। ऐसा करने के लिए आप बिल्कुल सही हैं। मुझे लगता है, समस्या यह है कि / यह सवाल अनुभवी WP उपयोगकर्ताओं / डेवलपर्स के लिए हल करने के लिए उतना कठिन नहीं था, साथ ही इस तथ्य के कारण कि आपने अकेले प्रश्न पोस्ट किया था। यदि आप शुरू से ही सवाल-जवाब करना चाहते हैं, तो अपना जवाब / समाधान सीधे उसी पेज पर शामिल करें जिस पर आप अपना प्रश्न लिखते हैं। पोस्ट योर क्वेश्चन बटन के नीचे एक चेक बॉक्स है, अपने खुद के प्रश्न का उत्तर दें । एक बार फिर धन्यवाद।
tfrommen

wp_reset_postdata()बचाव के लिए। प्रत्येक कस्टम क्वेरी के बाद किया जाना चाहिए ।
कैसर

जवाबों:


21

मैं दो छोरों का उपयोग कर रहा हूं। पहला लूप पेज कंटेंट को दिखाने के लिए है, और दूसरा लूप क्वेरिड पोस्ट कंटेंट को दिखाने के लिए है। मैंने उन कोड्स में टिप्पणी की जहां आवश्यक हो। मैंने लूप में जोर दिया, जैसा कि डेक्सटर0 ने वर्डप्रेस समर्थन में कहा था , the_content()केवल एक वर्डप्रेस लूप के अंदर काम करता है। मैं इन कोड को अपने स्वयं के टेम्पलेट में रख रहा हूं:

<?php
/*
* Template Name: My Template
*/
get_header(); ?>

<div id="container">
    <div id="content" class="pageContent">

    <h1 class="entry-title"><?php the_title(); ?></h1> <!-- Page Title -->
    <?php
    // TO SHOW THE PAGE CONTENTS
    while ( have_posts() ) : the_post(); ?> <!--Because the_content() works only inside a WP Loop -->
        <div class="entry-content-page">
            <?php the_content(); ?> <!-- Page Content -->
        </div><!-- .entry-content-page -->

    <?php
    endwhile; //resetting the page loop
    wp_reset_query(); //resetting the page query
    ?>

    <?php
    // TO SHOW THE POST CONTENTS
    ?>                        
        <?php
        $my_query = new WP_Query( 'cat=1' ); // I used a category id 1 as an example
        ?>
        <?php if ( $my_query->have_posts() ) : ?>
        <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
        <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>

            <h1 class="entry-title"><?php the_title(); ?></h1> <!-- Queried Post Title -->
            <div class="entry-content">
                <?php the_excerpt(); ?> <!-- Queried Post Excerpts -->
            </div><!-- .entry-content -->

        <?php endwhile; //resetting the post loop ?>

        </div><!-- #post-<?php the_ID(); ?> -->

        <?php
        wp_reset_postdata(); //resetting the post query
        endif;
        ?>

    </div><!-- #content -->         
</div><!-- #container -->

वह दूसरा प्रश्न अंदर नहीं होना चाहिए if( have_posts() )क्योंकि वह कथन हमेशा सत्य होगा। आप कॉल करना चाहिए if( $my_query->have_posts() )के बाद $my_query = new WP_Query( 'cat=1' );आपको लगता है कि क्वेरी परिणामों की जांच करना चाहते हैं और आर्ग लाइनों।
t31os

@ t31os आप सही हैं। यह मेरी गलती है। अब ऐसे में कोड को सही किया। पहचान के लिए धन्यवाद। :)
मयिनुल इस्लाम

0

दो छोरों ऐसा करने के लिए आम है, लेकिन थोड़ा सा खरीदा।

हर पोस्ट या पेज आपको सुपर-वैरिएबल देता है $post। कभी आपने सोचा है कि आपके get_post_meta()काम एक साधारण से क्यों होते हैं $post->ID?)

तो, इससे पहले कि आप WP_Query () है कि आपके सूचीबद्ध पदों हो जाता है शुरू करते हैं, आप वर्तमान पृष्ठ- / साथ के बाद डेटा तक पहुँच सकते $post->ID, $post->post_content, $post->guidऔर इतने पर।

लूप में, यह चर लूपेड पोस्ट द्वारा भरा जाता है। इसे बाद के लिए सहेजने के लिए, आप या तो एक नया चर बना सकते हैं

$temp_post = $post

// new WP_Query() + loop here

अथवा फोन करें

wp_reset_query ()

लिस्टिंग के बाद। अंतिम फ़ंक्शन को वैसे भी यह सुनिश्चित करने के लिए बुलाया जाना चाहिए कि आपके साइडबार का डेटा वर्तमान पृष्ठ / पोस्ट के लिए सही है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.