Estoy tratando de hacer un mensaje personalizado en lugar del mensaje predeterminado cuando guardo una publicación, ¿alguien sabe cómo hacerlo?
Estoy tratando de hacer un mensaje personalizado en lugar del mensaje predeterminado cuando guardo una publicación, ¿alguien sabe cómo hacerlo?
Respuestas:
http://codex.wordpress.org/Function_Reference/register_post_type ejemplo:
//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;
}
La 'message'
parte de la $_GET
matriz es la responsable de mantener el valor real del mensaje como integer
. Esto significa que todo lo que se pasa allí se establecerá como mensaje real. Los mensajes en sí se almacenan dentro de una matriz global en las plantillas de la IU de administrador. Su nombre $messages
y tiene tres claves por defecto:
page
post
attachment
Los mensajes se almacenan como sub-matrices de la $messages
matriz principal .
Algunas cosas a tener en cuenta (WP core v4.0.1):
0
no está en uso.attachment
mensajes actualmente son un truco y solo tienen la cadena 'Media attachment updated.'
en cada tecla.Usa el post_updated_messages
filtro:
add_filter( 'post_updated_messages', function( $messages )
{
$messages['post'][2] = 'My awesome custom field just updated. Congratulations!';
return $messages;
} );
Mira ~/wp-admin/edit-form-advanced.php
qué mensaje se usa para qué.
El respaldo, si no se utiliza ningún tipo de publicación, es la
post
matriz de mensajes de tipo de publicación.
Puede agregar de manera segura su propio conjunto de mensajes mediante una devolución de llamada en el filtro personalizado. Solo asegúrese de utilizar su nombre de tipo de publicación personalizado como clave para la matriz de mensajes:
add_filter( 'post_updated_messages', function( $messages )
{
$messages['my_custom_post_type'][2] = 'Go, buy some milk!';
return $messages;
} );
La devolución de llamada en sí misma probablemente se enganche mejor
do_action( "load-{$pagenow}" )
Pensé que esto podría ayudar a algunos.
Después de recorrer varios sitios, solo pude ver un mensaje personalizado con la ayuda de esto.
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');