Saya mencoba membuat pesan khusus alih-alih pesan default ketika saya menyimpan posting, apakah ada yang tahu bagaimana melakukannya!
Saya mencoba membuat pesan khusus alih-alih pesan default ketika saya menyimpan posting, apakah ada yang tahu bagaimana melakukannya!
Jawaban:
Contoh 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;
}
Bagian 'message'
dari $_GET
array adalah apa yang bertanggung jawab untuk memegang nilai pesan aktual integer
. Ini berarti bahwa semua yang diteruskan di sana, akan ditetapkan sebagai pesan aktual. Pesan itu sendiri disimpan di dalam array global di templat Admin UI. Dinamai $messages
dan memiliki tiga kunci per default:
page
post
attachment
Pesan disimpan sebagai sub-array dari array utama $messages
.
Beberapa hal yang perlu diingat (WP core v4.0.1):
0
digunakan.attachment
Pesan - pesan saat ini adalah peretasan dan hanya memiliki string 'Media attachment updated.'
pada setiap kunci.Gunakan post_updated_messages
filter:
add_filter( 'post_updated_messages', function( $messages )
{
$messages['post'][2] = 'My awesome custom field just updated. Congratulations!';
return $messages;
} );
Lihatlah ~/wp-admin/edit-form-advanced.php
pesan mana yang digunakan untuk apa.
Fallback, jika tidak ada jenis posting yang digunakan, adalah
post
array pesan tipe posting.
Anda dapat dengan aman menambahkan set pesan Anda sendiri melalui panggilan balik pada filter dipesan lebih dahulu. Pastikan Anda menggunakan nama jenis pos khusus sebagai kunci untuk larik pesan:
add_filter( 'post_updated_messages', function( $messages )
{
$messages['my_custom_post_type'][2] = 'Go, buy some milk!';
return $messages;
} );
Callback itu sendiri mungkin paling cocok
do_action( "load-{$pagenow}" )
Kupikir ini mungkin bisa membantu.
Setelah melalui panjang dan luasnya berbagai situs saya hanya bisa mendapatkan pesan khusus ditampilkan dengan bantuan dari ini.
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');