Thông thường, lúc chuẩn bị xuất bản bài viết (publish post), chúng ta có thể chèn hoặc không chèn hình làm ảnh đại diện cho bài viết đó (Featured Image ). Tuy nhiên nếu vì một lý do nào đó mà các bạn luôn muốn tác giả phải chọn ảnh đại diện trước khi xuất bản bài viết thì chỉ việc copy đoạn code bên dưới và dán nó vào file functions.php là xong.
add_action('save_post', 'wpds_check_thumbnail');
add_action('admin_notices', 'wpds_thumbnail_error');
function wpds_check_thumbnail($post_id) {
// change to any custom post type
if(get_post_type($post_id) != 'post')
return;
if ( !has_post_thumbnail( $post_id ) ) {
// set a transient to show the users an admin message
set_transient( "has_post_thumbnail", "no" );
// unhook this function so it doesn't loop infinitely
remove_action('save_post', 'wpds_check_thumbnail');
// update the post set it to draft
wp_update_post(array('ID' => $post_id, 'post_status' => 'draft'));
add_action('save_post', 'wpds_check_thumbnail');
} else {
delete_transient( "has_post_thumbnail" );
}
}
function wpds_thumbnail_error()
{
// check if the transient is set, and display the error message
if ( get_transient( "has_post_thumbnail" ) == "no" ) {
echo "<div id='message' class='error'><p><strong>Bạn phải chọn Featured Image. Bài viết của bạn được lưu nhưng sẽ không thể xuất bản.</strong></p></div>";
delete_transient( "has_post_thumbnail" );
}
}
Và bây giờ mỗi khi tác giả nhấn nút ” Publish ” để xuất bản mà chưa chọn ảnh đại diện thì sẽ xuất hiện thông báo ” Bạn phải chọn Featured Image. Bài viết của bạn được lưu nhưng sẽ không thể xuất bản. “. Rất hoàn hảo phải không các bạn.