WordPress как на ладони
wordpress jino

post_updated_messages хук-фильтр . WP 3.0

Позволяет изменять сообщения выводимые при обновлении или добавлении записи (поста).

При редактировании записи вверху экрана выводятся сообщения вроде: запись добавлена, запись обновлена и т.д. Этот хук позволяет дополнять или полностью заменять такие сообщения.

Хук срабатывает всякий раз когда в заходите на страницу создания или редактирования записи, даже когда ничего не обновляется. Поэтому, если обработка сообщения будет трудоемкой, можно вызывать хук через хук current_screen с проверкой, обновляется запись или добавляется и та ли это вообще запись.

Использование

add_filter( 'post_updated_messages', '____filter_function_name' );
function ____filter_function_name( $messages ) {
	// Фильтр...

	return $messages;
}
$messages(массив)

Массив всех возможных сообщений. Массив разбит на «подмассивы»: post, page и attachment. И выглядит так:

Для русской локали:

Array
(
	[post] => Array
		(
			[0] => 
			[1] => Запись обновлена. <a href="http://site.ru/foo/">Просмотреть запись</a>
			[2] => Поле изменено.
			[3] => Поле удалено.
			[4] => Запись обновлена.
			[5] => 
			[6] => Запись опубликована. <a href="http://site.ru/foo/">Просмотреть запись</a>
			[7] => Запись сохранена.
			[8] => Запись отправлена. <a target="_blank" href="http://site.ru/foo/?preview=true">Просмотреть</a>
			[9] => Запись запланирована на <strong>28.05.2016 03:43</strong>. <a target="_blank" href="http://site.ru/foo/">Просмотреть</a>
			[10] => Черновик записи обновлён. <a target="_blank" href="http://site.ru/foo/?preview=true">Просмотреть</a>
		)

	[page] => Array
		(
			[0] => 
			[1] => Страница обновлена. <a href="http://site.ru/foo/">Открыть страницу</a>
			[2] => Поле изменено.
			[3] => Поле удалено.
			[4] => Страница обновлена.
			[5] => 
			[6] => Страница опубликована. <a href="http://site.ru/foo/">Открыть страницу</a>
			[7] => Страница сохранена.
			[8] => Страница отправлена. <a target="_blank" href="http://site.ru/foo/?preview=true">Просмотреть</a>
			[9] => Страница запланирована на <strong>28.05.2016 03:43</strong>. <a target="_blank" href="http://site.ru/foo/">Просмотреть</a>
			[10] => Черновик страницы обновлён. <a target="_blank" href="http://site.ru/foo/?preview=true">Просмотреть</a>
		)

	[attachment] => Array
		(
			[1] => Медиафайл обновлён.
			[2] => Медиафайл обновлён.
			[3] => Медиафайл обновлён.
			[4] => Медиафайл обновлён.
			[5] => Медиафайл обновлён.
			[6] => Медиафайл обновлён.
			[7] => Медиафайл обновлён.
			[8] => Медиафайл обновлён.
			[9] => Медиафайл обновлён.
			[10] => Медиафайл обновлён.
		)

)

Для англ локали:

Array
(
	[post] => Array
		(
			[0] => 
			[1] => Post updated. <a href="http://site.ru/foo/">View post</a>
			[2] => Custom field updated.
			[3] => Custom field deleted.
			[4] => Post updated.
			[5] => 
			[6] => Post published. <a href="http://site.ru/foo/">View post</a>
			[7] => Post saved.
			[8] => Post submitted. <a target="_blank" href="http://site.ru/foo/?preview=true">Preview post</a>
			[9] => Post scheduled for: <strong>May 28, 2016 @ 03:20</strong>. <a target="_blank" href="http://site.ru/foo/">Preview post</a>
			[10] => Post draft updated. <a target="_blank" href="http://site.ru/foo/?preview=true">Preview post</a>
		)

	[page] => Array
		(
			[0] => 
			[1] => Page updated. <a href="http://site.ru/foo/">View page</a>
			[2] => Custom field updated.
			[3] => Custom field deleted.
			[4] => Page updated.
			[5] => 
			[6] => Page published. <a href="http://site.ru/foo/">View page</a>
			[7] => Page saved.
			[8] => Page submitted. <a target="_blank" href="http://site.ru/foo/?preview=true">Preview page</a>
			[9] => Page scheduled for: <strong>May 28, 2016 @ 03:20</strong>. <a target="_blank" href="http://site.ru/foo/">Preview page</a>
			[10] => Page draft updated. <a target="_blank" href="http://site.ru/foo/?preview=true">Preview page</a>
		)

	[attachment] => Array
		(
			[1] => Media file updated.
			[2] => Media file updated.
			[3] => Media file updated.
			[4] => Media file updated.
			[5] => Media file updated.
			[6] => Media file updated.
			[7] => Media file updated.
			[8] => Media file updated.
			[9] => Media file updated.
			[10] => Media file updated.
		)

)

Примеры

#1 Дополним сообщение при создании записи.

При публикации поста выдаётся сообщение Запись опубликована + ссылка на неё. Этот пример добавляет к этой записи текст:

add_filter('post_updated_messages', function($messages){
	$messages['post'][6] .= ' Дополнительное сообщение.'; 

	return $messages;
});

Связи хука

Остальные хуки из файла: wp-admin/edit-form-advanced.php:

Фрагменты кода хука post_updated_messages

Фрагмент из: wp-admin/edit-form-advanced.php VER 4.9.1
...
	 6 => __( 'Page published.' ) . $view_page_link_html,
	 7 => __( 'Page saved.' ),
	 8 => __( 'Page submitted.' ) . $preview_page_link_html,
	 9 => sprintf( __( 'Page scheduled for: %s.' ), '<strong>' . $scheduled_date . '</strong>' ) . $scheduled_page_link_html,
	10 => __( 'Page draft updated.' ) . $preview_page_link_html,
);
$messages['attachment'] = array_fill( 1, 10, __( 'Media file updated.' ) ); // Hack, for now.

/**
 * Filters the post updated messages.
 *
 * @since 3.0.0
 *
 * @param array $messages Post updated messages. For defaults @see $messages declarations above.
 */
$messages = apply_filters( 'post_updated_messages', $messages );

$message = false;
if ( isset($_GET['message']) ) {
	$_GET['message'] = absint( $_GET['message'] );
	if ( isset($messages[$post_type][$_GET['message']]) )
		$message = $messages[$post_type][$_GET['message']];
	elseif ( !isset($messages[$post_type]) && isset($messages['post'][$_GET['message']]) )
		$message = $messages['post'][$_GET['message']];
}

$notice = false;
$form_extra = '';
if ( 'auto-draft' == $post->post_status ) {
	if ( 'edit' == $action )
		$post->post_title = '';
...
post_updated_messages Комментариев нет

Здравствуйте, !

Ваш комментарий