Wordpress Hook до обновления после публикации

Я пишу плагин для wordpress. Я хотел бы установить статус публикации для публикации, если статус публикации будет будущим.

Я знаю один хук, который нужно использовать, это pre_post_update.

Однако где хранится массив деталей, связанных с публикациями, чтобы я мог изменить post_status?

Спасибо за помощь


person Atif    schedule 14.02.2010    source источник


Ответы (1)


Функция, которая вызывает ловушку pre_post_update, появляется для меня в строке 1525 файла wp-includes / posts.php:

do_action( 'pre_post_update', $post_ID );

Как видите, он передает идентификатор сообщения, которое обновляется при выполнении. Чтобы получить сообщение оттуда, вы должны просто позвонить get_post(), например:

function do_something_with_a_post($post_id, $post_data) {
     // now do something with $post_data
}
add_action('pre_post_update', 'do_something_with_a_post', 10, 2);

Переменная $post выше должна ссылаться на объект со всеми различными атрибутами публикации, которую вы ищете, надеюсь.

person jsdalton    schedule 14.02.2010
comment
Измените эту переменную $post, чтобы не распространять ее на базу данных. - person cdmckay; 22.11.2012
comment
pre_post_update принимает $data в качестве второго аргумента: do_action( 'pre_post_update', $post_ID, $data ); - person human; 01.03.2016
comment
для обновления данных используйте фильтр вместо действия. фильтр для изменения данных, сохраненных в БД: wp_insert_post_data codex.wordpress.org/Plugin_API/Filter_Reference/ - person ornoone; 09.05.2019