รับเนื้อหาของหน้าโดยใช้กระสุน


9

ฉันพยายามรับเนื้อหาของหน้าเว็บเมื่อฉันรู้จักสตริงกระสุนเท่านั้น

มีฟังก์ชั่นสำหรับสิ่งนี้หรือวิธีที่ง่ายในการทำสิ่งนี้หรือเป็นกรณีของการทำมันผ่านทาง SQL หรือไม่?

ขอบคุณมาก ๆ

คำตอบ:


30

ใช้get_posts()และพารามิเตอร์nameซึ่งเป็นกระสุน:

$page = get_posts( array( 'name' => 'your-slug' ) );

if ( $page )
{
    echo $page[0]->post_content;
}

ทราบว่าประเภทโพสต์ในค่าเริ่มต้นget_posts() 'post'หากคุณต้องการหน้าใช้ ...

$page = get_posts(
    array(
        'name'      => 'your-slug',
        'post_type' => 'page'
    )
);

หากคุณต้องการทุกสาธารณะประเภทโพสต์ (ยกเว้นสิ่งที่แนบมา) 'any'ตั้งอาร์กิวเมนต์ประเภทโพสต์ไป จากนั้นคุณจะได้รับมากกว่าหนึ่งผลเนื่องจากทากนั้นไม่เหมือนกันกับโพสต์ประเภทต่างๆ


4

คุณสามารถรับหน้าโดยใช้ชื่อget_page_by_title()หน้าที่ใช้

คุณสามารถใช้มันได้ (สมมติว่าคุณต้องการแสดงเนื้อหา):

$page = get_page_by_title('Your Title'); 
$content = apply_filters('the_content', $page->post_content);
echo $content;

BTW เพื่อรับหน้าโดยใช้กระสุน:

function get_page_id_by_slug($slug){
    global $wpdb;
    $id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_name = '".$slug."'AND post_type = 'page'");
    return $id;
}

$page = get_post(get_page_id_by_slug('my-slug'));

4

หากในหน้ากับกระสุนในคำถาม

อ่านเพิ่มเติมเกี่ยวกับแท็กที่มีเงื่อนไข :
is_page()ยังใช้กระสุนเป็นอาร์กิวเมนต์

ดังนั้น

if( is_page( 'your-slug' ) ) {
     // fetch content
}

จะทำในสิ่งที่คุณต้องการ

หากอยู่หน้าอื่น

หากคุณสนใจวิธีดึงเนื้อหาของโพสต์ / หน้าโดยใช้ทากเมื่อไม่ได้อยู่ในหน้าดังกล่าวคุณสามารถป้อนget_postsทากได้เช่นกัน นี่ไม่ใช่เอกสารใน codex

ต่อไปนี้จะดึงข้อมูล id จากกระสุน:

$args = array(
    'name' => 'your-slug'
);
$posts_from_slug = get_posts( $args );

// echo fetched content
echo $posts_from_slug[0]->post_content;

2

get_page_by_pathใช้

วากยสัมพันธ์

<?php get_page_by_path( $page_path, $output, $post_type ); ?>

พารามิเตอร์

ตัวอย่าง:

//Returns the animal with the slug 'cat'
get_page_by_path('cat', OBJECT, 'animal');

สำหรับการอ้างอิงเพิ่มเติมโปรดดูการอ้างอิงฟังก์ชัน WordPress

ฉันใช้รหัสนี้เมื่อเติมเท็มเพลตธีมจากหน้า

        $about = get_page_by_path('about'); 
        $content = apply_filters( 'the_content', $about->post_content ); 
        echo $content;
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.