Использование 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, кажется, что он работает каждый раз, но мне нужно, чтобы он запускался только тогда, когда статус установлен на публикацию в первый раз...

Author: Andreyu, 2012-09-18

1 answers

Это потому, что тогда поля не были заданы. Примечание: Процесс/запрос "Автосохранение" также не сохраняет их.

Вместо этого используйте значения из $_POST для вашего действия "new_to_publish".

РЕДАКТИРОВАТЬ: Не НЕ забудьте сбежать и правильно очистить входные данные! Иначе вы откроете дыру в системе безопасности.

 4
Author: kaiser, 2019-11-18 10:59:14