save_post_(post_type) хук-подіяWP 3.7.0

Подія спрацьовує щоразу, коли запис зазначеного типу (пост, сторінка) створюється або оновлюється, у тому числі і при публікації через імпорт, xmlrpc або e-mail.

Це копія хука save_post , тільки тут (post_type)можна вказати тип посту, для якого потрібно, щоб хук спрацьовував.

Використання

add_action( 'save_post_(post_type)', 'wp_kama_save_post_type_action', 10, 3);

/**
 * Function for `save_post_(post_type)` action-hook.
 *
 * @param int $post_ID Post ID.
 * @param WP_Post $post Post об'єкт.
 * @param bool $update Whether this is existing post being updated.
 *
 * @return void
 */
function wp_kama_save_post_type_action( $post_ID, $post, $update ){

	// action...
}
$post_ID
(число)
ID запису, який оновлюється.
$post
(WP_Post)
Об’єкт запису, який оновлюється. Об’єкт такий самий як зазвичай у глобальній змінній
$post .
$update
(логічний)
true – це оновлення запису.

false — додати новий запис.

Приклади

0

#1 Надсилання email при оновленні запису типу book

Цей приклад показує, як надсилати лист адміністратору сайту з повідомленням про оновлення щоразу, коли запис оновлюється.

add_action( 'save_post_book', 'my_project_updated_send_email');
function my_project_updated_send_email( $post_id ) {

	// Якщо це ревізія, то не надсилаємо листа
	if ( wp_is_post_revision( $post_id ) ){
		return;
	}

	// Якщо статус запису відрізняється від "Опубліковано", то не надсилаємо листа
	if ( get_post($post_id)->post_status != 'publish' ){
		return;
	}

	$post_title = get_the_title($post_id);
	$post_url = get_permalink( $post_id );
	$subject = 'Запис було оновлено';

	$message = "На вашому сайті наступний запис був оновлений:nn";
	$message.=$post_title. ":". $post_url;

	// Відправляємо листа.
	wp_mail(get_option('admin_email'), $subject, $message);
}
0

#2 Ще приклади

Ще приклади дивіться в описі події save_post .

список змін

З версії 3.7.0Введено.

Де викликається хук

save_post_(post_type)

Де використовується хук у WordPress

wp-includes/default-filters.php 678

add_action( 'save_post_wp_template_part', 'wp_set_unique_slug_on_create_template_part');

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *