kode pendek tidak berfungsi ketika saya mendapatkan konten dari panggilan wp rest api

Saya mencoba mendapatkan konten jenis posting khusus yang disebut event menggunakan wp rest api . semuanya berfungsi dengan baik tetapi saya menggunakan pembuat halaman Wp Backery untuk membuat konten dalam jenis posting acara saya dan masalahnya adalah saya mendapatkan kode pendek tanpa penguraian dan semuanya dalam teks biasa.

Adakah yang bisa membantu saya dengan ini?

Saya sudah mencoba beberapa jawaban dalam pertanyaan serupa seperti menggunakan fungsi do_shortcode() dan mencoba menelepon apply_filters( 'the_content' , get_the_content()) tetapi tidak ada yang berhasil untuk saya

ini kode rest-api saya:

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;

}

Saya mendapatkan hasilnya tetapi kode pendeknya tidak diuraikan dan hanya berupa teks biasa. Terima kasih sebelumnya


person Taghi Khavari    schedule 06.08.2019    source sumber


Jawaban (2)


terima kasih kepada @muka.gergely Saya telah menemukan jawabannya di sini.

kode terakhir yang berfungsi untuk saya ada di sini:

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;

}

Semoga ini menghemat waktu Anda

person Taghi Khavari    schedule 06.08.2019

Bagi siapa pun yang mungkin tertarik, ini berhasil untuk saya

apply_filters('the_content', $content);

Ada juga di sini

person Ahmed Sobhy    schedule 18.07.2020