जवाबों:
get_page()
की $post
वस्तु को लौटाने के लिए उपयोग कर सकते हैं :$page_id = 302;
$page_object = get_page( $page_id );
echo $page_object->post_content;
इसी तरह, आप किसी पोस्ट का ऑब्जेक्ट get_post()
वापस करने के लिए उपयोग कर सकते हैं $post
:
$post_id = 302;
$post_object = get_post( $post_id );
echo $post_object->post_content;
setup_postdata( $post );
पहले उपयोग करें , उसके बाद, आप उपयोग कर सकते हैंthe_content();
apply_filters( 'the_content', $post_object->post_content );
लूप के बाहर की पोस्ट पाने के लिए आप कुछ इस तरह से लिख सकते हैं
global $post;
$content = $post->post_content;
if ( !empty( $content ) ) :
echo $content;
endif;
यदि आपकी सामग्री में लघुकोड शामिल हैं, तो आपको उपयोग करना चाहिए:
$post_id = 22;
$post_object = get_post( $post_id );
echo do_shortcode( $post_object->post_content );
do_shortcode
कहने के अलावा कि "यह धीमा हो सकता है" और "आप केवल उस फ़ंक्शन का उपयोग कर सकते हैं जो शॉर्ट कोड कॉल करता है।" वे कारण केवल सबसे सरल परिदृश्यों के लिए सबसे तुच्छ के लिए मान्य हैं। यह तब विफल हो जाता है जब शॉर्टकोड कहीं और उत्पन्न होता है, या यदि कई शॉर्टकोड, या शॉर्टकोड अन्य सामग्री और मार्कअप के साथ मिश्रित होते हैं। एक सम्मोहक कारण के बिना, मैं बयान से बचने के लिए असहमत हूँ do_shortcode
। यह समय से पहले अनुकूलन की तरह बदबू आ रही है ।
संपूर्णता के लिए, ऊपर टिम की टिप्पणी पर निर्माण और स्टीफन हैरिस के लेख से प्रेरित , समाधान जो उपयोग करने में सक्षम बनाता the_content()
है:
$post_id = 302;
global $post;
$post = get_post($post_id);
setup_postdata( $post );
the_content();
wp_reset_postdata( $post );
और इसलिए फ़िल्टर लागू होते हैं (पैराग्राफ सम्मिलित किए जाएंगे आदि) और शॉर्टकोड काम करते हैं।
आप get_post_data()
लूप के बाहर पोस्ट प्राप्त करने के लिए फ़ंक्शन का उपयोग कर सकते हैं । इस कोड को functions.php में रखें
function get_post_data($postId) {
global $wpdb;
return $wpdb->get_row("SELECT * FROM $wpdb->posts WHERE ID=$postId");
}
और फिर इस स्निपेट को प्रक्रिया पर अधिक नियंत्रण के लिए जोड़ दें
<?php $data = get_post_data(302);
echo $data->post_date; // post date
echo $data->post_title; // post title
echo $data->post_content; // post content
echo $data->comment_count; // comments number
?>
आप, जैसा कि कहा जा सकता है, के साथ get_post
और समाधान का उपयोग कर सकते हैं$post_object->post_content
, लेकिन उस पोस्ट ऑब्जेक्ट का उपयोग करने से पहले एक चेक जोड़ना न भूलें:
function get_post_content( $post_id = null ) {
$post_object = get_post( $post_id );
if ( ! $post_object ) { return ''; }
//else
return apply_filters('the_content', $post_object->post_content);
}
echo get_post_content( $other_post_id );
आप बस get_the_content (पोस्टआईड) कॉल कर सकते हैं
<?php echo get_the_content($postId); ?>
का उपयोग wp_reset_postdata();
यह काम करेगा .. (संपादित)
<?php
$args = array(
'post_type' => 'posttype',
'p' => 'post_id'
);
$the_query = new WP_Query( $args );
if( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<?php the_content(); ?>
<?php endwhile; endif;
wp_reset_postdata();
?>
पोस्ट टाइप "पोस्ट", "पेज" या आपका कस्टम पोस्ट प्रकार हो सकता है। यहाँ p = 302 आपकी पोस्ट आईडी है .. आशा है कि यह काम करेगा।
query_posts
जब तक आपको पेज की कार्यक्षमता को तोड़ने की आवश्यकता न हो, तब तक कभी भी उपयोग न करें । हमेशा कस्टम क्वेरीज़ के लिए WP_Query
या उसका उपयोग करें get_posts
:-)
pre_get_posts
फिल्टर भी है , और the_post
। इतना विस्तार।
आप सामग्री को एक श्रेणी X में रख सकते हैं और इस तरह से पहले query_post का उपयोग कर सकते हैं:
<?php query_posts('cat=X&showposts=1'); ?>
<?php while (have_posts()) : the_post(); ?>
<?= get_the_content(); ?>
<?php endwhile; ?>
get_queried_object_id()
! developer.wordpress.org/reference/classes/wp_query/…