update_post_meta不适用于save_post_ {post-type}

时间:2018-06-18 08:28:19

标签: wordpress

我尝试在save_post挂钩中从一个自定义字段中获取一些数据。首先我尝试了save_post_{post-type}钩子,但是update_post_meta没有保存任何东西。然后我尝试了save_post,它正在工作...... 奇怪的是save_post_{post-type}挂钩被触发,因为它在我转储$_Request时给了我一些输出(例如)。只有update_post_meta不起作用。 (我在update_post_meta之前和之后尝试过这一点,以确保谷歌地图协调的东西正在工作,它们是,因为我也能够转储它们。)

add_action('save_post_listing', 'geocode_address', 999999);
function geocode_address($post_id) {
        global $api_key;

            $custom_fields = get_post_meta($post_id, '', true);
            if(!empty($custom_fields["wpcf-geo_map"][0])) {
                $resp = wp_remote_get( "https://maps.google.com/maps/api/geocode/json?key=".$api_key."&address=".urlencode($custom_fields["wpcf-geo_map"][0])."&sensor=false" );
                if ( 200 == $resp['response']['code'] ) {
                    $body = $resp['body'];
                    $data = json_decode($body);
                    if($data->status=="OK"){
                        $latitude = $data->results[0]->geometry->location->lat;
                        $longitude = $data->results[0]->geometry->location->lng;

                        update_post_meta($post_id, "wpcf-latitude", $latitude);
                        update_post_meta($post_id, "wpcf-longitude", $longitude);

                    } 
                } 

            }

}

0 个答案:

没有答案