Setare mesaje personalizate pentru actualizarea/salvarea postării
Încerc să creez un mesaj personalizat în locul mesajului implicit când salvez o postare, știe cineva cum să fac asta!

http://codex.wordpress.org/Function_Reference/register_post_type exemplu:
//adaugă un filtru pentru a asigura că textul Carte, sau carte, este afișat când utilizatorul actualizează o carte
add_filter('post_updated_messages', 'codex_book_updated_messages');
function codex_book_updated_messages( $messages ) {
global $post, $post_ID;
$messages['book'] = array(
0 => '', // Neutilizat. Mesajele încep de la indexul 1.
1 => sprintf( __('Carte actualizată. <a href="%s">Vezi cartea</a>'), esc_url( get_permalink($post_ID) ) ),
2 => __('Câmp personalizat actualizat.'),
3 => __('Câmp personalizat șters.'),
4 => __('Carte actualizată.'),
/* translators: %s: data și ora reviziei */
5 => isset($_GET['revision']) ? sprintf( __('Carte restaurată la revizia din %s'), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
6 => sprintf( __('Carte publicată. <a href="%s">Vezi cartea</a>'), esc_url( get_permalink($post_ID) ) ),
7 => __('Carte salvată.'),
8 => sprintf( __('Carte trimisă. <a target="_blank" href="%s">Previzualizează cartea</a>'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
9 => sprintf( __('Carte programată pentru: <strong>%1$s</strong>. <a target="_blank" href="%2$s">Previzualizează cartea</a>'),
// translators: Formatul datei în caseta de publicare, vezi http://php.net/date
date_i18n( __( 'j M, Y @ G:i' ), strtotime( $post->post_date ) ), esc_url( get_permalink($post_ID) ) ),
10 => sprintf( __('Ciornă de carte actualizată. <a target="_blank" href="%s">Previzualizează cartea</a>'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
);
return $messages;
}

Stocarea Mesajelor
Partea 'message'
din array-ul $_GET
este responsabilă pentru păstrarea valorii reale a mesajului ca integer
. Aceasta înseamnă că tot ce este transmis acolo, va fi setat ca mesaj efectiv. Mesajele în sine sunt stocate într-un array global în șabloanele UI Admin. Se numește $messages
și are trei chei în mod implicit:
page
post
attachment
Mesajele sunt stocate ca sub-array-uri ale array-ului principal $messages
.
Note:
Câteva lucruri de reținut (WP core v4.0.1):
- Valoarea
0
nu este utilizată. - Mesajele
attachment
sunt în prezent un hack și au doar șirul'Media attachment updated.'
pentru fiecare cheie. - Toate sub-array-urile de mesaje au 10 chei
Cum să adăugați mesaje personalizate
Utilizați filtrul post_updated_messages
:
add_filter( 'post_updated_messages', function( $messages )
{
$messages['post'][2] = 'Câmpul meu personalizat tocmai s-a actualizat. Felicitări!';
return $messages;
} );
Consultați ~/wp-admin/edit-form-advanced.php
pentru a vedea ce mesaj este folosit pentru ce.
Opțiunea implicită, dacă nu este utilizat niciun tip de postare, este array-ul de mesaje al tipului de postare
post
.
Tipuri de Postări Personalizate
Puteți adăuga în siguranță propriul set de mesaje printr-un callback pe filtrul menționat. Asigurați-vă că utilizați numele tipului de postare personalizat ca cheie pentru array-ul de mesaje:
add_filter( 'post_updated_messages', function( $messages )
{
$messages['my_custom_post_type'][2] = 'Du-te și cumpără niște lapte!';
return $messages;
} );
Callback-ul în sine este probabil cel mai bine agățat pe
do_action( "load-{$pagenow}" )

Am crezut că acest lucru ar putea fi de ajutor pentru unii.
După ce am parcurs în lung și în lat diverse site-uri, am reușit să afișez un mesaj personalizat doar cu ajutorul acestui cod.
https://onextrapixel.com/10-tips-for-a-deeply-customised-wordpress-admin-area/
function frl_on_save_post($post_id, $post) {/* adaugă un filtru de avertizare la salvarea articolului */
if($post->post_type == 'post') //testează pentru ceva real aici
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) { /* filtrează locația de redirecționare pentru a adăuga parametrul de avertizare */
$location = add_query_arg(array('warning'=>'my_warning'), $location);
return $location;
}
function frl_warning_in_notice() { /* afișează mesajul de avertizare */
if(!isset($_REQUEST['warning']) || empty($_REQUEST['warning']))
return;
$warnum = trim($_REQUEST['warning']);
/* coduri posibile de avertizare și mesaje */
$warnings = array(
'my_warning' => __('Acesta este mesajul meu personalizat de avertizare!', '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');
