所以我注意到的是,如果我在save_post函数中检查元值,它会显示为空白,这意味着元值实际上没有输入到帖子中。以此代码为例,
function order_mirror_create($post_id) {
global $post;
if($post->ID == ''){
$pid = $post_id;
} else {
$pid = $post->ID;
}
$videohost = get_post_meta($pid, 'video_provider', true);
if ($videohost == "UploadAnime") {
add_post_meta($pid, 'video_display_order', 1, true);
} else {
add_post_meta($pid, 'video_display_order', $videohost, true);
}
}
$videohost
实际上是空白的,因此get_post_meta($pid, 'video_provider', true)
不会返回该元字段的实际值,因为它尚未创建。
因此,在上面的代码中,else
始终是运行的,因为$videohost
为空。我怎样才能解决这个问题?我应该使用哪种action
,以便将post meta添加到帖子中的方式运行。
答案 0 :(得分:0)
您应该更改以下内容:
if ($videohost == "UploadAnime") {
add_post_meta($pid, 'video_display_order', 1, true);
} else {
add_post_meta($pid, 'video_display_order', $videohost, true);
}
要:
if ($videohost == "UploadAnime") {
update_post_meta($pid, 'video_display_order', 1, true);
} else {
update_post_meta($pid, 'video_display_order', $videohost, true);
}
我发现add_post_meta对我来说从未真正起作用,而update_post_meta确实有效。