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 (Featured Image) 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', 'tapchicntt_check_thumbnail'); add_action('admin_notices', 'tapchicntt_thumbnail_error'); function tapchicntt_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', 'tapchicntt_check_thumbnail'); // update the post set it to draft wp_update_post(array('ID' => $post_id, 'post_status' => 'draft')); add_action('save_post', 'tapchicntt_check_thumbnail'); } else { delete_transient( "has_post_thumbnail" ); } } function tapchicntt_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 (Featured Image) 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 tuyệt phải không các bạn.