Домой Каталог: Дополнения WP-Recall Groups Recall Отображение миниатюр в группах
12ответ(ов) в теме
Даниил
не в сети 6 лет
На сайте с 29.12.2015
Участник
1
17:28

Доброго времени суток! Миниатюры в группах можно указывать, только если выбран загрузчик изображений от WP-Recall, но если выбран тип загрузки через загрузчик Wordpress - то миниатюру нельзя загрузить. Поэтому пришёл на ум способ реализовать это через автозагрузку миниатюры, то есть если в посте группы есть картинка - он будет считать её за миниатюру. Что нужно изменить в коде, чтобы этот способ работал для постов групп, а не только для публикаций? ))

<?php function avtomaticheskaya_miniatura() {  
global $post;  
$already_has_thumb = has_post_thumbnail($post->ID);
 
// проверка на наличие миниатюры посте
 if (!$already_has_thumb) {
 $attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" );
 
// делаем условие проверку на наличеи картинки
 if ($attached_image) {
 foreach ($attached_image as $attachment_id => $attachment) {
 set_post_thumbnail($post->ID, $attachment_id);
 }
 }
 }
 }
 
add_action('future_to_publish', 'autoset_featured');
add_action('the_post', 'autoset_featured');
add_action('save_post', 'autoset_featured');
 
add_action('draft_to_publish', 'autoset_featured');
add_action('new_to_publish', 'autoset_featured');
add_action('pending_to_publish', 'autoset_featured');
 
?>

0
Вова (Otshelnik-Fm)
не в сети 23 часа
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18647
2
17:38

Здравствуйте.
Анонсировано бета тестирование 16-й версии. В ней проблемы с миниатюрами нет.

0
Даниил
не в сети 6 лет
На сайте с 29.12.2015
Участник
3
17:39

Да, слышал ))
Но вот только у меня много дополнений, которые, к сожалению, пока не поддерживают 16 версию. Поэтому мне нужно временное решение.

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
4
19:10

приведенный вами код, должен работать со всеми типа записей, там нет проверки на тип, просто выбираются все прикрепленные к публикации изображения, прогоняются в цикле, где и назначается миниатюра.
Только код кривоват, надо сразу после set_post_thumbnail($post->ID, $attachment_id); поставить break; иначе миниатюрой будут поочередно назначаться все изображения, а их может быть и много)

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
5
19:15

пардон, не заметил numberposts=1

0
Даниил
не в сети 6 лет
На сайте с 29.12.2015
Участник
6
19:36

Благодарю ))
Но у меня данный код почему-то не хочет работать, и посты остаются без миниатюр.

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
7
19:57

а для типа post все работает?

0
Даниил
не в сети 6 лет
На сайте с 29.12.2015
Участник
8
19:59

Сейчас проверил - нет, почему-то тоже не работает. Странно ))

0
Вова (Otshelnik-Fm)
не в сети 23 часа
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18647
9
20:11

Функция у вас как называется? А хуки привязаны к какой функции? Тест на внимательность?

0
Даниил
не в сети 6 лет
На сайте с 29.12.2015
Участник
10
20:45

Если речь про autoset_featured, то я менял его в функции, но код всё равно не работает. Или я не до конца понимаю ошибку ))

0
Вова (Otshelnik-Fm)
не в сети 23 часа
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18647
11
21:16

Функция должна вешаться на хук. Сейчас ваша функция не привязана к указанным хукам.

И почитайте про хук save_post

Вы не можете просматривать опубликованные ссылки

Можно сделать типа:

add_action('save_post_post-group', 'avtomaticheskaya_miniatura');

а сама функция уже id записи может принимать:

function avtomaticheskaya_miniatura($post_ID)

и этот $post_ID уже использовать без всяких указаний глобальных переменных

Вообще если вы нашли рабочую функцию, то она и должна работать. А то сейчас выясняется вы нашли то, сами не знаете что.
Пилить кастомные костыли в преддверии 16й версии мне, увы, тоскливо.

0
Даниил
не в сети 6 лет
На сайте с 29.12.2015
Участник
12
21:20

Благодарю! Ознакомлюсь с предложенным вариантом ))

0
Тема закрыта. Публикация новых сообщений запрещена.