douguluan5102
2017-11-16 15:16 阅读 25
已采纳

PHP和WordPress - 如何在发布元更新后运行函数以输出到JSON文件?

I'm using save_post_{post_type} hook to generate a JSON file with all the content of a custom post type.

add_action('save_post_book', 'updateBooks');

function updateBooks(){
    $url = site_url().'/wp-json/wp/v2/books?_embed=true/';
    $params = array( 'timeout' => 30, 'sslverify' => false );
    $response = wp_remote_get( $url, $params );
    $body = wp_remote_retrieve_body( $response );
    $path = $_SERVER['DOCUMENT_ROOT'];
    file_put_contents($path.'/books.json', $body);
}

The problem is with ACF custom fields. I believe the hook runs before post meta updates. So the new values from the ACF fields are not sent to the JSON files.

Solution

add_action('acf/save_post', 'updateJson', 20);

function updateJson($post_id){
    $post_type = get_post_type($post_id);
    $url = site_url().'/wp-json/wp/v2/'.$post_type.'?_embed=true/';
    $params = array( 'timeout' => 30, 'sslverify' => false );
    $response = wp_remote_get( $url, $params );
    $body = wp_remote_retrieve_body( $response );
    $path = $_SERVER['DOCUMENT_ROOT'];
    file_put_contents($path.'/'.$post_type.'.json', $body);
}
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

相关推荐