Итак, я заметил, что если я проверю мета значение в моей функции save_post, оно будет пустым, что означает, что мета-значение фактически не было введено должность. Глядя на этот код, например,У меня нет доступа к сообщению meta в действии 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
, это будет работать таким образом, что мета-почта уже добавлена в сообщение.
'update_post_meta' просто вызывает' add_post_meta', когда видит, что мета-поле фактически не создано. В сущности, он никогда не должен фактически обновлять мета-значение когда-либо, поэтому он всегда будет вызывать 'add_post_meta' .... В любом случае' add_post_meta' отлично работает, тот факт, что он добавляет пустые значения, говорит мне, что '$ videohost' ничего не имеет, поэтому оператор else всегда работает. – Maaz