Tôi đang cố gắng tạo một tin nhắn tùy chỉnh thay vì tin nhắn mặc định khi tôi lưu một bài đăng, có ai biết làm thế nào không!
Tôi đang cố gắng tạo một tin nhắn tùy chỉnh thay vì tin nhắn mặc định khi tôi lưu một bài đăng, có ai biết làm thế nào không!
Câu trả lời:
http://codex.wordpress.org/Function_Reference/register_post_type ví dụ:
//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;
}
Một 'message'
phần của $_GET
mảng là những gì chịu trách nhiệm giữ giá trị thông điệp thực tế là integer
. Điều này có nghĩa là mọi thứ được thông qua trong đó, sẽ được đặt thành thông điệp thực tế. Các thông điệp được lưu trữ bên trong một mảng toàn cục trong các mẫu UI UI. Nó được đặt tên $messages
và có ba khóa cho mỗi mặc định:
page
post
attachment
Các thông điệp được lưu trữ dưới dạng các mảng con của mảng chính $messages
.
Một số điều cần lưu ý (WP core v4.0.1):
0
được sử dụng.attachment
tin nhắn hiện đang là một hack và chỉ cần có chuỗi 'Media attachment updated.'
trên mỗi khóa.Sử dụng post_updated_messages
bộ lọc:
add_filter( 'post_updated_messages', function( $messages )
{
$messages['post'][2] = 'My awesome custom field just updated. Congratulations!';
return $messages;
} );
Nhìn vào ~/wp-admin/edit-form-advanced.php
thông điệp nào được sử dụng cho những gì.
Dự phòng, nếu không có loại bài đăng được sử dụng, là
post
mảng thông báo loại bài đăng.
Bạn có thể thêm bộ tin nhắn của riêng mình một cách an toàn thông qua một cuộc gọi lại trên bộ lọc bespoken. Chỉ cần đảm bảo rằng bạn sử dụng tên loại bài đăng tùy chỉnh của mình làm khóa cho mảng tin nhắn:
add_filter( 'post_updated_messages', function( $messages )
{
$messages['my_custom_post_type'][2] = 'Go, buy some milk!';
return $messages;
} );
Cuộc gọi lại có lẽ là tốt nhất
do_action( "load-{$pagenow}" )
Nghĩ rằng điều này có thể giúp một số.
Sau khi trải qua chiều dài và chiều rộng của các trang web khác nhau, tôi chỉ có thể nhận được một thông báo tùy chỉnh được hiển thị với sự trợ giúp từ điều này.
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');