Estou tentando fazer uma mensagem personalizada em vez da mensagem padrão quando eu salvar uma postagem, alguém sabe como fazer isso!
Estou tentando fazer uma mensagem personalizada em vez da mensagem padrão quando eu salvar uma postagem, alguém sabe como fazer isso!
Respostas:
http://codex.wordpress.org/Function_Reference/register_post_type exemplo:
//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;
}
A 'message'
parte da $_GET
matriz é responsável por manter o valor real da mensagem como integer
. Isso significa que tudo o que for passado lá será definido como mensagem real. As mensagens em si são armazenadas em uma matriz global nos modelos de UI do administrador. É nomeado $messages
e tem três chaves por padrão:
page
post
attachment
As mensagens são armazenadas como sub-matrizes da $messages
matriz principal .
Algumas coisas a ter em mente (WP core v4.0.1):
0
não está em uso.attachment
mensagens atualmente são um hack e apenas possuem a string 'Media attachment updated.'
em todas as chaves.Use o post_updated_messages
filtro:
add_filter( 'post_updated_messages', function( $messages )
{
$messages['post'][2] = 'My awesome custom field just updated. Congratulations!';
return $messages;
} );
Veja ~/wp-admin/edit-form-advanced.php
qual mensagem é usada para quê.
O fallback, se nenhum tipo de postagem for usado, é a
post
matriz de mensagens do tipo de postagem.
Você pode adicionar com segurança seu próprio conjunto de mensagens por meio de um retorno de chamada no filtro sob medida. Apenas certifique-se de usar seu nome personalizado de tipos de postagem como chave para a matriz de mensagens:
add_filter( 'post_updated_messages', function( $messages )
{
$messages['my_custom_post_type'][2] = 'Go, buy some milk!';
return $messages;
} );
O retorno de chamada em si provavelmente é melhor conectado
do_action( "load-{$pagenow}" )
Achei que isso poderia ajudar alguns.
Depois de percorrer vários sites, só consegui receber uma mensagem personalizada com a ajuda disso.
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');