web-dev-qa-db-pt.com

WordPress REST API - Conteúdo "renderizado" do JSON incorreto

eu estou trabalhando em aplicativos Android que usam wordpress rest api para obter blog do site para, eu não tenho nenhum conhecimento sobre php ou wordpress, mas eu levo algum tempo para aprender sobre isso, qualquer maneira meu problema está no json. o conteúdo contém parágrafos desconhecidos e não sei como resolver este problema, por favor ajude  Android application  json  youtube video 

2
monsieur Moumni

O conteúdo que você está se referindo é proveniente do plugin Elegant Themes Page Builder naquele site.

O construtor de páginas usa WordPress Shortcodes para renderizar o conteúdo no site WordPress. No entanto, quando você usa a API REST, o conteúdo é extraído do banco de dados do WordPress e os códigos de acesso não são processados ​​/ renderizados primeiro.

Você precisaria remover os códigos de acesso do JSON retornado antes de ser exibido no seu aplicativo. Você poderia usar algo assim para remover os códigos de acesso antes de exibir seu conteúdo no aplicativo:

// Remove Divi/ET Page Builder shortcodes
$content = preg_replace('/\[\/?et_pb.*?\]/', '', $content);
2
Mat

Você pode colocar este código em seu arquivo functions.php de temas:

function awh_filter_post_json( $data, $post, $context ) {
    $data = json_encode($data); //convert array or object to JSON string
    $data = preg_replace('/\[\/?et_pb.*?\]/', '', $data); //remove shortcodes
    $data = json_decode($data); //convert JSON String to array or object
    return $data;
}

add_filter( 'rest_prepare_post', 'awh_filter_post_json', 10, 3 );
0
Joe