Домой Оптимизация и учебники по WordPress WordPress Tips: как заставить пользователя загружать избранные изображения перед публикацией сообщения

WordPress Tips: как заставить пользователя загружать избранные изображения перед публикацией сообщения

283
0

Как я уже упоминал пару раз ранее, WordPress довольно удивителен в добавлении хуков и хаков без изменения основных компонентов. У пользователя так много опций, чтобы полностью его настроить.

Некоторое время назад мы написали статью о добавлении социальных сетей без Javascript, и она стала очень популярной. Как и в случае с WordPress Featured Image вариант, вы можете украсить свой макет блога и улучшить презентацию вашего блога. Разработчик темы может использовать одно и то же изображение в нескольких вариантах в зависимости от типа темы .

Предоставление и добавление избранного изображения в пост / страницу WordPress не является обязательным вариантом. Иногда это может создать пустое место на теме и может нарушить макет вашего блога. В этом уроке мы рассмотрим советы о том, как заставить пользователя загружать избранные изображения перед публикацией сообщения?

Давайте начнем:

  1. использовать эти save_post а также admin_notices действия
  2. использование post_updated_messages фильтры
  3. использование has_post_thumbnail($post_id) — который возвращает логическое значение, если сообщение имеет избранные изображения
  4. Во время публикации проверьте, установлен ли эскиз?
    1. если нет, продолжайте и установите переходную переменную на «нет»
    2. Если временная переменная равна «нет» — установите уведомление администратора с четким сообщением
    3. если временная переменная не «нет» — опубликуйте сообщение

Вставьте ниже код вашей темы functions.php файл

functions.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// save_post — это действие, запускаемое при создании или обновлении поста или страницы
add_action ( 'save_post' , 'crunchify_verify_thumbnail' ) ;
add_action ( 'admin_notices' , 'crunchify_show_thumbnail_error' ) ;
функция crunchify_verify_thumbnail ( $ post_id ) {
     // Это относится только к типу `post`. Вы могли бы иметь это и для `page`
     if ( get_post_type ( $ post_id ) ! знак равно пост )
         возврат ;
    
     если ( ! has_post_thumbnail ( $ post_id ) ) {
         // устанавливаем переходный процесс, чтобы показать пользователям сообщение администратора
         set_transient ( crunchify_check_thumbnail , «нет» ) ;
         // отцепить эту функцию, чтобы она не зацикливалась
         remove_action ( 'save_post' , 'crunchify_verify_thumbnail' ) ;
         // обновляем пост, устанавливаем его в черновик
         wp_update_post ( array ( 'ID') = > $ post_id , 'post_status' = > «черновик» ) ) ;
         add_action ( 'save_post' , 'crunchify_verify_thumbnail' ) ;
     } еще {
         delete_transient ( crunchify_check_thumbnail ) ;
     }
}
функция crunchify_show_thumbnail_error ( )
{
     // Показывать только сообщение об ошибке, если установлена временная переменная
     если ( get_transient ( crunchify_check_thumbnail ) == «нет» ) {
         эхо

Howdy. Вы не сможете` опубликовать 'этот пост, пока не выберете `Featured Image`. < / div> ;

         delete_transient ( crunchify_check_thumbnail ) ;
     }
}

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

Но с приведенным выше кодом вы все равно можете получить Post published сообщение. С помощью приведенного ниже кода вы сможете легко удалить это сообщение.

functions.php

PHP
1
2
3
4
5
6
// Простой способ удалить опубликованное уведомление при обработке ошибки
add_filter ( 'post_updated_messages' , 'crunchify_disable_publish_successful_msg' ) ;
функция crunchify_disable_publish_successful_msg ( $ сообщения )
{
     вернуть массив ( ) ;
}
WordPress Tips: как заставить пользователя загружать избранные изображения перед публикацией сообщения

0.00 (0%) 0 votes

ЧИТАТЬ ТАКЖЕ:  WordPress: как удалить дополнительные параметры запроса из URL

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь