2016-02-16 20 views
5

Używam WordPress REST API, aby uzyskać zawartość HTML mojej strony WordPress w zewnętrznej aplikacji. Dzwonię to mojawitryna/wp-json/WP/v2/pages/10 i powraca:Uzyskaj surowe wyjście HTML z WordPress REST API

"content": { 
    "rendered": "[vc_column_text]Hello World[/vc_column_text]" 
} 

Czy istnieje sposób, aby przywrócić kod w to końcowy wynik HTML i bez [vc_] skróconych, np .: <p>Hello World</p>

Krótkie kody pochodzą z Visual Composer page builder plugin.

+0

mających ten sam problem tutaj. Próbowałem użyć filtru zawartości, aby przekształcić go w HTML. Pisałem również na forum pomocy, więc mam nadzieję uzyskać odpowiedź tutaj lub tutaj. :) [Wpis na forum WP REST API support] (https://wordpress.org/support/topic/convert-shortcodes-to-html-for-json-api) –

Odpowiedz

0

Znaleziony i odpowiedzieć tutaj: https://github.com/CompassHB/web/issues/67#issuecomment-245857301

Poniższy przykład pochodzi z linku powyżej:

/** 
* Modify REST API content for pages to force 
* shortcodes to render since Visual Composer does not 
* do this 
*/ 
add_action('rest_api_init', function() 
{ 
    register_rest_field(
      'page', 
      'content', 
      array(
       'get_callback' => 'compasshb_do_shortcodes', 
       'update_callback' => null, 
       'schema'   => null, 
     ) 
     ); 
}); 

function compasshb_do_shortcodes($object, $field_name, $request) 
{ 
    WPBMap::addAllMappedShortcodes(); // This does all the work 

    global $post; 
    $post = get_post ($object['id']); 
    $output['rendered'] = apply_filters('the_content', $post->post_content); 

    return $output; 
}