WordPress" REST API" - 渲染VisualComposer内容

时间:2016-02-04 16:33:26

标签: wordpress

我正在通过" REST API V2"从WordPress请求内容。插入。这非常有效。只剩下一个问题:" VisualComposer"创建的内容。插件不会在de REST Response中呈现。

回应是:

[vc_row]Hello World . . .[/vc_row]

回应应该是:

<div class="row">Hello World . . .</div>

如何实现? 谢谢?

3 个答案:

答案 0 :(得分:6)

我认为您可以使用WP REST API v2找到答案:https://github.com/WP-API/WP-API/issues/2578

以下示例来自上面的链接(谢谢, bradmsmith !)

以下是如何在帖子内容上呈现VC短代码的示例:

add_action( 'rest_api_init', function ()
{
   register_rest_field(
          // if you need it to work with other (even custom post) types,
          // then you have to use an array:
          // array( 'page', 'post', 'custom_post_type', 'etc' )
          // this example only does the trick for 'page'
          // look at the link in the first EDIT section of this answer
          '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;
}

修改

以下是 register_rest_field()功能的链接:register_rest_field()

答案 1 :(得分:2)

我通过使用WordPress的另一个REST插件(JSON API)解决了这个问题。此插件按预期呈现响应。 VisualComposer短代码现在是HTML格式。

答案 2 :(得分:1)

这就是Visual Composer存储内容的方式。如果禁用Visual Composer,您将看到它所留下的所有内容都是您在其上使用过的每个帖子中的一系列短代码。 WP REST API在返回存储的内容之前不执行短代码。如果您不想在检索内容后转换内容,您可能希望查看编写纯HTML而不依赖于短代码的页面构建器,或者您可以为之前运行短代码的WP REST API创建自定义端点返回HTML。

看起来他们的端点类似于我在WP.com API中推荐的端点,但WP REST API还没有类似的东西,AFAIK

页面构建器插件here有一个很好的概述,如果你想走那条路。