Bắt buộc chọn Ảnh Đại Diện trước khi xuất bản bài viết trong WordPress

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.

Rate this post