J'essaie de créer un message personnalisé au lieu du message par défaut lorsque j'enregistre un message, est-ce que quelqu'un sait comment le faire!
J'essaie de créer un message personnalisé au lieu du message par défaut lorsque j'enregistre un message, est-ce que quelqu'un sait comment le faire!
Réponses:
http://codex.wordpress.org/Function_Reference/register_post_type exemple:
//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'
partie du $_GET
tableau est responsable de la conservation de la valeur réelle du message integer
. Cela signifie que tout ce qui y est transmis sera défini comme un message réel. Les messages eux-mêmes sont stockés dans un tableau global dans les modèles d'administration UI. Il est nommé $messages
et possède trois clés par défaut:
page
post
attachment
Les messages sont stockés en tant que sous-tableaux du $messages
tableau principal .
Quelques points à garder à l'esprit (WP core v4.0.1):
0
n'est pas utilisé.attachment
messages sont actuellement un hack et ont juste la chaîne 'Media attachment updated.'
sur chaque clé.Utilisez le post_updated_messages
filtre:
add_filter( 'post_updated_messages', function( $messages )
{
$messages['post'][2] = 'My awesome custom field just updated. Congratulations!';
return $messages;
} );
Regardez ~/wp-admin/edit-form-advanced.php
quel message est utilisé pour quoi.
Le repli, si aucun type de publication n'est utilisé, est le
post
tableau de messages de type de publication.
Vous pouvez ajouter en toute sécurité votre propre ensemble de messages via un rappel sur le filtre sur mesure. Assurez-vous simplement d'utiliser le nom de votre type de publication personnalisé comme clé pour le tableau des messages:
add_filter( 'post_updated_messages', function( $messages )
{
$messages['my_custom_post_type'][2] = 'Go, buy some milk!';
return $messages;
} );
Le rappel lui-même est probablement mieux accroché
do_action( "load-{$pagenow}" )
J'ai pensé que cela pourrait aider certains.
Après avoir parcouru la longueur et la largeur de divers sites, je n'ai pu obtenir qu'un message personnalisé affiché avec l'aide de cela.
https://onextrapixel.com/10-tips-for-a-deply-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');