UPDATE_POST_META在SAVE_POST中不工作

时间:2017-04-07 作者:Jeremiah

我试图创建的函数有问题。它应该很简单。当有人保存帖子时,抓取城市/地址/省份并将其转换为long/lat,然后将其保存到数据库中。问题是,我无法让“update\\u post\\u meta”工作,我不明白为什么。

代码如下,非常简单。

add_action( \'save_post_dealer\', \'save_dealer_long_lat\');
function save_dealer_long_lat($post_id) {
    $city = get_post_meta( $post_id, \'wpcf-dealer-city\', true );
    $address = get_post_meta( $post_id, \'wpcf-dealer-address\', true );
    $province = get_post_meta( $post_id, \'wpcf-dealer-province\', true );
    $coords = get_coordinates($city, $address, $province);

    $lat = get_post_meta( $post_id, \'wpcf-latitude\', true );
    $long = get_post_meta( $post_id, \'wpcf-longitude\', true );

    if(empty($lat)) {
        update_post_meta($post_id, \'wpcf-latitude\', $coords[\'lat\'], $lat);
    }
    if(empty($long)) {
        update_post_meta($post_id, \'wpcf-longitude\', $coords[\'long\'], $long);
    }
}
消除明显错误的几件事。

是的,post类型为“经销商”-此功能正在正确运行

  • 正在访问update\\u post\\u meta-lat/long为空(数据库中甚至没有条目)
  • 我不明白发生了什么,我看到的一切似乎都表明这应该是有效的。

    1 个回复
    SO网友:yezzz

    有点晚了,但我刚刚遇到了这样一个问题,即添加一个分类术语是可行的,但添加post-meta却不行。解决方案是设置更高的优先级。默认优先级为10,因此请尝试将实例优先级设置为100:

    add_action( \'save_post_dealer\', \'save_dealer_long_lat\', 100, 1);
    

    相关推荐

    列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

    这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在