请求发布时的REST API钩子

时间:2017-11-18 作者:Summer Developer

我知道我可以使用端点/wp-json/wp/v2/posts/{id} 去取信。

我正在构建一个完全依赖JSON API及其端点的WordPress实现。这是一个角度SPA实现,这意味着当通过API发出请求时,我的挂钩需要启动。

因此,如果我想为帖子记录视图,我想使用\'posts_selection\'. 我的第一个问题是,如果通过/wp-json/wp/v2/posts/{id}

我的第二个问题是,是否还有另一个钩子或其他东西在对帖子进行API查询时也会触发,但会通过{id} 我的职务是什么?

因为当我这样做的时候:

function check_assembled_query( $query ) {
    var_dump( $query );
}

 add_action( \'posts_selection\', \'check_assembled_query\' );
$query 没有我想要的信息。我想要以下工作流:

使用/wp-json/wp/v2/posts/{id} 来自AngularJSupdate_post_meta() 需要一个职位id.EDIT: 我接受了post_selection 不触发REST API,因为在执行此操作时:

function check_assembled_query( $query ) {
    var_dump( $query );
    die();
}

 add_action( \'posts_selection\', \'check_assembled_query\' );
我只在常规请求上获得转储,而不是对JSON API的请求。

1 个回复
最合适的回答,由SO网友:Nathan Johnson 整理而成

我原来的答案全错了,所以全部删除了。

无论是posts_selection 也没有wp 在REST API请求期间激发钩子。

你需要的钩子是rest_pre_echo_response. 此挂钩传递三个参数:

将服务器实例发送到客户端的响应数据

  • 用于生成响应的请求
  • 由于您需要帖子ID,您可以执行以下操作:

    add_filter( \'rest_pre_echo_response\', function( $response, $object, $request ) {
      //* Get the post ID
      $post_id = $response[ \'id\' ];
    
      //* Make sure of the post_type
      if( \'post\' !== $response[ \'post\' ] ) return $response;
    
      //* Do something with the post ID
    
      //* Return the new response
      return $response;
    }, 10, 3 );
    

    结束

    相关推荐

    theme functions (hooks)

    WordPress已经提出了这个问题,但没有答案。我只是想在这个论坛上试试,如果有人知道的话,因为我也有同样的问题。要使用jquery滑块编辑我的主题,如何转到该脚本?,显示“$主题->挂钩(\'content\\u before\');”在content div标记中。有人能帮忙吗?我的主题索引。php包含以下内容<div id=\"main\"> <?php $theme->hook(\'main_before\'); ?> &#x