Я пытаюсь создать собственное сообщение вместо сообщения по умолчанию, когда я сохраняю сообщение, кто-нибудь знает, как это сделать!
Я пытаюсь создать собственное сообщение вместо сообщения по умолчанию, когда я сохраняю сообщение, кто-нибудь знает, как это сделать!
Ответы:
http://codex.wordpress.org/Function_Reference/register_post_type пример:
//add filter to ensure the text Book, or book, is displayed when user updates a book
add_filter('post_updated_messages', 'codex_book_updated_messages');
function codex_book_updated_messages( $messages ) {
global $post, $post_ID;
$messages['book'] = array(
0 => '', // Unused. Messages start at index 1.
1 => sprintf( __('Book updated. <a href="%s">View book</a>'), esc_url( get_permalink($post_ID) ) ),
2 => __('Custom field updated.'),
3 => __('Custom field deleted.'),
4 => __('Book updated.'),
/* translators: %s: date and time of the revision */
5 => isset($_GET['revision']) ? sprintf( __('Book restored to revision from %s'), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
6 => sprintf( __('Book published. <a href="%s">View book</a>'), esc_url( get_permalink($post_ID) ) ),
7 => __('Book saved.'),
8 => sprintf( __('Book submitted. <a target="_blank" href="%s">Preview book</a>'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
9 => sprintf( __('Book scheduled for: <strong>%1$s</strong>. <a target="_blank" href="%2$s">Preview book</a>'),
// translators: Publish box date format, see http://php.net/date
date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) ), esc_url( get_permalink($post_ID) ) ),
10 => sprintf( __('Book draft updated. <a target="_blank" href="%s">Preview book</a>'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
);
return $messages;
}
'message'
Часть $_GET
массива , что несет ответственность за проведение фактического значения сообщения в качестве integer
. Это означает, что все, что будет передано туда, будет установлено как фактическое сообщение. Сами сообщения хранятся в глобальном массиве в шаблонах интерфейса администратора. Он назван $messages
и имеет три ключа по умолчанию:
page
post
attachment
Сообщения хранятся в виде подмассивов основного $messages
массива.
Некоторые вещи, которые нужно иметь в виду (WP core v4.0.1):
0
Не используется.attachment
сообщениях в настоящее время являются хак и просто строку 'Media attachment updated.'
на каждом ключе.Используйте post_updated_messages
фильтр:
add_filter( 'post_updated_messages', function( $messages )
{
$messages['post'][2] = 'My awesome custom field just updated. Congratulations!';
return $messages;
} );
Посмотрите, ~/wp-admin/edit-form-advanced.php
какое сообщение используется для чего.
Резервным вариантом, если тип сообщения не используется, является
post
массив сообщений типа сообщения.
Вы можете безопасно добавить свой собственный набор сообщений с помощью обратного вызова на заказной фильтр. Просто убедитесь, что вы используете свое имя типа записей в качестве ключа для массива сообщений:
add_filter( 'post_updated_messages', function( $messages )
{
$messages['my_custom_post_type'][2] = 'Go, buy some milk!';
return $messages;
} );
Сам обратный вызов, вероятно, лучше всего зацепить
do_action( "load-{$pagenow}" )
Думаю, это может помочь некоторым.
Изучив длину и ширину различных сайтов, я смог получить только пользовательское сообщение, отображаемое с помощью этого.
https://onextrapixel.com/10-tips-for-a-deeply-customised-wordpress-admin-area/
function frl_on_save_post($post_id, $post) {/* add warning filter when saving post */
if($post->post_type == 'post') //test for something real here
add_filter('redirect_post_location', 'frl_custom_warning_filter');
}
add_action('save_post', 'frl_on_save_post', 2, 2);
function frl_custom_warning_filter($location) { /* filter redirect location to add warning parameter*/
$location = add_query_arg(array('warning'=>'my_warning'), $location);
return $location;
}
function frl_warning_in_notice() { /* print warning message */
if(!isset($_REQUEST['warning']) || empty($_REQUEST['warning']))
return;
$warnum = trim($_REQUEST['warning']);
/* possible warnings codes and messages */
$warnings = array(
'my_warning' => __('This is my truly custom warning!', 'frl')
);
if(!isset($warnings[$warnum]))
return;
echo '<div class="error message"><p><strong>';
echo $warnings[$warnum];
echo '</strong></p></div>';
}
add_action('admin_notices', 'frl_warning_in_notice');