我试图使用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挂钩,我也遇到了同样的问题。
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\'] );