Использование get post meta с новым для публикации
Я пытаюсь прочитать пользовательские поля, установленные пользователем при публикации нового сообщения:
function doSomething($post) {
$meta = get_post_meta($post->ID);
error_log("post meta: ".print_r($meta, true));
}
add_action("new_to_publish", "doSomething", 999);
add_action("draft_to_publish", "doSomething", 999);
add_action("pending_to_publish", "doSomething", 999);
Пользовательские поля существуют для draft_to_publish, но не для new_to_publish.
Если я использую save_post, кажется, что он работает каждый раз, но мне нужно, чтобы он запускался только тогда, когда статус установлен на публикацию в первый раз...
7
1 answers
Это потому, что тогда поля не были заданы. Примечание: Процесс/запрос "Автосохранение" также не сохраняет их.
Вместо этого используйте значения из $_POST
для вашего действия "new_to_publish"
.
РЕДАКТИРОВАТЬ: Не НЕ забудьте сбежать и правильно очистить входные данные! Иначе вы откроете дыру в системе безопасности.
4
Author: kaiser, 2019-11-18 10:59:14