Поддержка Проблемы и решения Как запретить публикацию записей без установленных миниатюр?

  • Решено aleks

    (@aleks683)


    Добрый день!

    Есть код:

    //требование обязательной установки миниатюры записи start
    function wph_require_featured_image($post_id) {
        $post = get_post($post_id);
     
        if($post->post_status == 'publish' && !has_post_thumbnail($post_id)) {
            $post->post_status = 'draft';
            wp_update_post($post);
     
            $message = '<p>Запись не опубликована, так как не была установлена 
            миниатюра записи!</p><p><a href="' . admin_url('post.php?post=' . 
            $post_id . '&action=edit') . '">Вернуться назад и установить 
            миниатюру</a></p>';
            wp_die($message, 'Ошибка - отсутствует миниатюра!');
        }        
    }
    add_action('save_post', 'wph_require_featured_image', -1);
    //требование обязательной установки миниатюры записи end

    Вопрос: А как сделать чтобы записи без миниатюры добавлялись не в черновик, а сразу же УДАЛЯЛИСЬ НАВСЕГДА?

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Добрый день.

    Так вопрос в запретить или в удалить?

    Если первое, то, например, плагин DCO Post Validator (в Настройки -> DCO Post Validator необходимо отметить галочкой где и что Вы хотите сделать обязательным). Также, ещё, помоему, был плагин Require Thumbnail, тоже можно посмотреть.

    Вопрос стоит в УДАЛИТЬ записи без миниатюр, — без корзин и черновиков.

    В принципе эту задачу обошел, теперь стоит новая. Как сделать чтобы данная функция касалась только обычных постов post_type?

    //требование обязательной установки миниатюры записи start
    function wph_require_featured_image($post_id) {
        $post = get_post($post_id);
     
        if($post->post_status == 'publish' && !has_post_thumbnail($post_id)) {
            $post->post_status = 'draft';
            wp_update_post($post);
     
            $message = '<p>Запись не опубликована, так как не была установлена 
            миниатюра записи!</p><p><a href="' . admin_url('post.php?post=' . 
            $post_id . '&action=edit') . '">Вернуться назад и установить 
            миниатюру</a></p>';
            wp_die($message, 'Ошибка - отсутствует миниатюра!');
        }        
    }
    add_action('save_post', 'wph_require_featured_image', -1);
    //требование обязательной установки миниатюры записи end
    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Не задавайте несколько вопросов в одной теме. Правила п2.

    if($post->post_status == 'publish' && $post->post_type == 'post' && !has_post_thumbnail($post_id)) {

    Denis Yanchevskiy то что надо! Спасибо большое.

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «Как запретить публикацию записей без установленных миниатюр?» закрыта для новых ответов.