Коли повідомлення оновлюється, вистрілюються деякі гачки:
'pre_post_update'
це дія, запущена перед оновленням публікації, аргумент прийнято 2: $post_ID
і $data
це масив усіх інших стовпців бази даних таблиці публікацій
'transition_post_status'
- це гачок, запущений під час оновлення, і передає 3 аргументи: $ new_post_status $old_post_status
та $post
(object).
- Потім є дві інші перехідні гачки, але вони мають динамічну назву, це означає, що ефективна дія, що справляється, залежить від старого та нового статусу повідомлення.
"{$old_status}_to_{$new_status}"
і "{$new_status}_{$post->post_type}"
. Перший передає єдиний об'єкт публікації як аргумент, другий передає ідентифікатор повідомлення та об'єкт публікації. Знайдіть документацію тут .
'edit_post'
які передають 2 аргументи: $post_ID
і $post
(об'єкт)
'post_updated'
що передача 3 аргументу: $post_ID
, $post_after
(після об'єкту після поновлення), $post_before
(після об'єкту перед оновленням)
- Ще один динамічний гачок:
"save_post_{$post->post_type}"
це залежить від поштового типу, наприклад , для стандартних посад 'save_post_post'
і сторінок 'save_post_page'
, цей гак пропуск 3 аргументу: $post_ID
, $post
(об'єкт) і $update
це логічне значення (істина або брехня) , що справедливо при виконанні оновлення, в Фактично цей гачок звільняється і тоді, коли повідомлення зберігається вперше.
- '
save_post
', що запускається як при оновленні, так і при першому збереженні, і передає ті ж три аргументи попереднього гака.
- '
save_post_{$post_type}
', що запускається як при оновленні, так і при першому збереженні і передає ті ж перші 2 аргументи попереднього гака.
- Нарешті у вас є '
wp_insert_post
' , який запускається як при оновленні, так і при першому збереженні, і передайте ті ж три аргументи попередніх 2 гаків.
Ці гачки звільняються щоразу, коли повідомлення оновлюється, як через сторінки адміністратора, так і через сервер адміністратора, коли оновлено "вручну" за допомогою wp_update_post
або wp_insert_post
функцій.
Коли публікація оновлюється на сторінках адміністратора, з'являються додаткові гачки, наприклад, 'update_post_redirect'
або 'post_updated_messages'
. (Побачити це та ці відповіді WPSE щодо прикладів використання).
Зауважте, що якщо ви хочете використовувати якийсь аргумент гаків, це не перший, ви повинні прямо заявити про це під час add_action
виклику.
Наприклад, якщо ви хочете використовувати '$update'
аргумент (тобто третій) 'save_post'
гака, який потрібно додати 3
як $accepted_args
парам на add_action
( див. Документи ):
// if you don't add 3 as as 4th argument, this will not work as expected
add_action( 'save_post', 'my_save_post_function', 10, 3 );
function my_save_post_function( $post_ID, $post, $update ) {
$msg = 'Is this un update? ';
$msg .= $update ? 'Yes.' : 'No.';
wp_die( $msg );
}
Остання примітка щодо термінів : ви повинні бути впевнені в цьомуadd_action
викликається до початку дії, інакше це нічого не зробить.
Наприклад, цей код:
wp_update_post( $post );
add_action( 'save_post', 'my_function', 10, 3 );
нічого не зробить, бо дія буде додана після того, як гачок вистрілений. Це просто розпізнати, в реальному світі код не завжди такий.
save_post
цього, це друкарська помилка, чи це було у вашому оригінальному коді? також включити налагодження під час розробки.