รหัสย่อไม่ทำงานเมื่อฉันได้รับเนื้อหาจากการเรียก wp rest api

ฉันกำลังพยายามรับเนื้อหาของประเภทโพสต์ที่กำหนดเองที่เรียกว่าเหตุการณ์โดยใช้ wp rest api ทุกอย่างทำงานได้ดี แต่ฉันใช้เครื่องมือสร้างเพจ Wp Backery เพื่อสร้างเนื้อหาในประเภทโพสต์กิจกรรมของฉัน และปัญหาคือฉันได้รับรหัสย่อโดยไม่ต้องแยกวิเคราะห์และเป็นข้อความธรรมดา

ใครสามารถช่วยฉันในเรื่องนี้ได้บ้าง?

ฉันได้ลองคำตอบบางคำตอบในคำถามที่คล้ายกัน เช่น การใช้ฟังก์ชัน do_shortcode() และพยายามโทร apply_filters( 'the_content' , get_the_content()) แต่คำตอบเหล่านั้นไม่ได้ผลสำหรับฉัน

นี่คือรหัสส่วนที่เหลือของฉัน:

add_action( 'rest_api_init' , 'wt_rest_api');

function wt_rest_api(){
    register_rest_route('wtrest','events',array(
            'methods'   => WP_REST_SERVER::READABLE,
            'callback'  => 'wtEventResults'
        )); 
}

function wtEventResults($data){
    $events = new WP_Query([
        'post_type' => 'event',
        'post__in'  => array( (int)$data['id'] )
        ]);

    $eventsResults = [];

    while($events->have_posts()){
        $events->the_post();

        array_push($eventsResults , [
            'content'   => apply_filters( 'the_content' , get_the_content())
            ]);
    }

    return $eventsResults;

}

ฉันได้รับผลลัพธ์ แต่รหัสย่อไม่แยกวิเคราะห์และเป็นข้อความธรรมดาเท่านั้น ขอบคุณล่วงหน้า


person Taghi Khavari    schedule 06.08.2019    source แหล่งที่มา


คำตอบ (2)


ขอบคุณ @muka.gergely ฉันพบคำตอบแล้ว ที่นี่

รหัสสุดท้ายที่เหมาะกับฉันอยู่ที่นี่:

add_action( 'rest_api_init' , 'wt_rest_api');

function wt_rest_api(){
    register_rest_route('wtrest','events',array(
            'methods'   => WP_REST_SERVER::READABLE,
            'callback'  => 'wtEventResults'
        )); 
}


function wtEventResults($data){
    WPBMap::addAllMappedShortcodes(); // This does all the work

    $events = new WP_Query([
        'post_type' => 'event',
        'post__in'  => array( (int)$data['id'] )
        ]);

    $eventsResults = [];

    while($events->have_posts()){
        $events->the_post();


        array_push($eventsResults , [
                'content'   => apply_filters( 'the_content' ,  get_the_content() )
            ]);
    }

    return $eventsResults;

}

หวังว่ามันจะช่วยคุณประหยัดเวลาได้บ้าง

person Taghi Khavari    schedule 06.08.2019

สำหรับใครก็ตามที่อาจสนใจสิ่งนี้ได้ผลสำหรับฉัน

apply_filters('the_content', $content);

นอกจากนี้ยังที่นี่

person Ahmed Sobhy    schedule 18.07.2020