SAVE_POST仅在第二次保存时保存元数据

时间:2018-05-22 作者:parvaneh

我试图使用save\\u post挂钩,但它没有按预期工作:当单选按钮“wpcf-property\\u online”为“y”时,我想用ID 75保存分类法(区域)。打开邮件时(&A);“wpcf-property\\u online”首先是“n”,然后我将其更改为“y”,然后单击“保存”,仅当我再次单击“保存”时,它不会保存区域75。

function save_online_shop($post_id) {

    if(get_post_meta($post_id, \'\', true)) {
        if(get_post_meta($post_id, \'wpcf-proprty_online\', false)) {
            if(get_post_meta($post_id, \'wpcf-proprty_online\', true) == \'y\') 
            {
                    wp_set_post_terms( $post_id, 75, \'region\' );
            }
        }
    }
}

add_action(\'save_post_listing\', \'save_online_shop\', 999999);
我真的不明白为什么会发生这种情况,我也玩弄了优先权,但无法让它发挥作用。我在另一个场合以类似的方式使用save\\u post挂钩,我也遇到了同样的问题。

1 个回复
SO网友:RobbTe

是否尝试删除IF语句并使用save_post 钩子代替save_post_listing 查看if语句是否阻止wp_set_post_terms?

同时尝试wp_set_object_terms 而不是wp_set_post_terms.

此外,如果你能确定这与if(get_post_meta($post_id, \'wpcf-proprty_online\', true) == \'y\') 语句,则在执行此函数之前,此post\\u meta尚未更新。因此,为什么不在此函数中更新它,以确保值==“n”或“y”。

update_post_meta( $post_id, \'wpcf-proprty_online\', $_POST[\'the_name_of_yr_field\'] );

结束

相关推荐