Php Wordpress后期更新未通过Wordpress挂钩更新后期
我想通过wordpess钩子更新帖子的postETA值,但我无法更新它。这是我的密码Php Wordpress后期更新未通过Wordpress挂钩更新后期,php,wordpress,post-meta,Php,Wordpress,Post Meta,我想通过wordpess钩子更新帖子的postETA值,但我无法更新它。这是我的密码 function check_values($post_ID, $post_after, $post_before){ $oldFob = get_post_meta( $post_ID, 'price', true); if($oldFob){ update_post_meta( $post_ID, 'price', 500); }else{
function check_values($post_ID, $post_after, $post_before){
$oldFob = get_post_meta( $post_ID, 'price', true);
if($oldFob){
update_post_meta( $post_ID, 'price', 500);
}else{
add_post_meta( $post_ID, 'fob-price', 500 , true);
}
}
add_action( 'post_updated', 'check_values', 10, 3 );
当我在update\u post\u meta
后不久放入die,并检查db时,它可以工作,但回到编辑post页面后,它会恢复
基本上,它是在更新post meta,但在更新后,会运行另一个默认wordpress函数并将其重置为旧值
任何专家的建议,为什么会发生这样的事 问题是因为hook
post\u updated
是在post的metas实际保存之前触发的
所以基本上你更新了帖子的meta,然后帖子就用请求中提交的meta值更新了
要解决此问题,您可以使用具有高优先级的save_post
钩子,使钩子最后运行:
add_action('save_post', function ($post_ID) {
$oldFob = get_post_meta( $post_ID, 'price', true);
if ($oldFob) {
update_post_meta( $post_ID, 'price', 500);
} else {
add_post_meta( $post_ID, 'fob-price', 500 , true);
}
}, 100);
有关更多信息:它对我很有用。非常感谢!!!。你能给我发一个链接吗hooks@MahaDev你可以看看这个: