รับเนื้อหาโพสต์ WordPress โดยโพสต์ ID


141

ฉันจะทำให้ WordPress โพสต์เนื้อหาโดยโพสต์ id ได้อย่างไร

คำตอบ:


177

ง่าย ๆ ตามที่ได้รับ

$my_postid = 12;//This is page id or post id
$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;

85
$content = get_post_field('post_content', $my_postid);
จด

4
@Bainternet ฉันแค่อยากรู้อยากเห็นที่นี่ ... ส่วนที่$content = str_replace(']]>', ']]>', $content);ทำคืออะไร? มันมีจุดประสงค์อะไรที่นั่น?
ค่าเฉลี่ย Joe

1
@AfficeJoe การค้นหาขั้นพื้นฐานและแทนที่ เมื่อใช้ the_content () เนื้อหาจะถูกกรอง เนื่องจากในตัวอย่างข้างต้นเนื้อหาถูกดึงโดยตรงผู้เขียนจึงใช้การค้นหาและแทนที่เพื่อให้ปลอดภัย
Harish Chouhan

2
บางทีคุณอาจต้องการ do_shortcode () เช่น$content = do_shortcode(get_post_field('post_content', $my_postid));
cyptus

มีอยู่เพื่อรักษา "more_link" หรือไม่
user2128576

126
echo get_post_field('post_content', $post_id);

61
ดีกว่าที่จะทำเช่นecho apply_filters('the_content', get_post_field('post_content', $post_id));นั้น ตัวอย่างเช่นเมื่อใช้ qTranslate โซลูชันของคุณอาจไม่เพียงพอ
Karel Attl

4
นี่คือคำตอบที่ดีที่สุดหากขอบเขตคือการรับเนื้อหาโพสต์ตามที่อยู่ในหน้าแก้ไข WordPress
mcont

โดยไม่ต้องใช้รหัสจาก @KarelAttl บรรทัดแบ่งที่ขาดหายไป ด้วยรหัส Apply_filters มันทำงานได้อย่างสมบูรณ์
Alexander Taubenkorb

1
apply_filtersเป็นตัวเลือกที่ดี แต่ไม่เหมาะสำหรับวัตถุประสงค์ปัจจุบันของฉัน เป็นการดีที่มีทั้งสองตัวเลือก
KnightHawk

25

อีกวิธีในการรับเนื้อหาโพสต์ WordPress โดยโพสต์ id คือ:

$content = apply_filters('the_content', get_post_field('post_content', $my_postid));

เพื่อให้คำตอบนี้ฉันได้เพิ่มวิธีที่ 01 และวิธีที่ 02 ในคำตอบนี้

วิธีที่ 01 (เครดิตไปที่bainternet ):

$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);

วิธีที่ 02 (เครดิตไปที่realmag777 ):

$content = get_post_field('post_content', $my_postid);

วิธีที่ 03:

$content = apply_filters('the_content', get_post_field('post_content', $my_postid));

อ่านวิธีที่ดีที่สุด / มีประสิทธิภาพในการรับเนื้อหา WordPress โดยโพสต์ id และทำไม? คำถามที่จะได้รับความคิดเกี่ยวกับสิ่งที่คุณควรใช้จากสามข้อข้างต้น


0

get_posts()หากคุณต้องการมากกว่าหนึ่งโพสต์ใช้ มันออกจากการสืบค้นหลักเพียงอย่างเดียวและส่งกลับอาร์เรย์ของโพสต์ที่ง่ายต่อการวนซ้ำ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.