Как сделать миниатюру обязательным полем при публикации поста?

Я разрабатываю сайт для клиента. Мне нужно сделать так что бы посты не публиковались если пользователь не добавил или просто забыл добавить картинку.

Проще говоря сделать поле миниатюры — обязательным полем и при обновлении или создании записи проверять его наличие. Если картинки — нет, то выводить предупреждение.

Добавить Комментарий
Ответ

Воспользуйтесь следующим снипетом, который следует добавить в файл functions.php

 /**
 * Проверям добавлена ли миниатюра
 *
 */
 dd_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>Вы не добавили миниатюру. Запись не опубликована</strong></p></div>';
 delete_transient("has_post_thumbnail");
 }
 }
 
Добавить Комментарий

Ваш ответ

Размещая свой ответ, вы соглашаетесь с правилами сайта.