Как сделать вывод 3-ёх новостей в Featured?

Допустим проблемы с изображением я решил посредством хака featuredimage. Но как сделать чтобы 3 случайных новости выводились а именно от них: Название новости, картинка блога (не обязательно), и количество текста из новости допустим символов в 50? Спасибо

7 комментариев

avatar
где выводились? пишите подробнее уж
если просто 3 любые случайные новости, скажем, на главной, в отдельном блоке — дописать функцию в классе топика и маппере (order by random limit 0,3) и сделать блок с результатом
  • xyz
  • 0
avatar
за ORDER BY RAND() отпиливают руки ржавой кочергой.
правильный вариант — тащить count, выбирать из count n случайных чисел, и в запрос where id IN()
avatar
а если у нас некоторые топики (о ужас!) удалялись?
avatar
то есть ORDER BY RAND считаете лучше? при какой нагрузке, уточните. и заодно можете потестить скрипт с ORDER BY RAND, скажем на 5000 топиков при 1000 уников.

Я вообще не совсем понял, про какой плагин идет речь, но:

1) нужно запомнить: удалять топики напрямую с базы плохо, плохо и еще раз плохо.
2) count можно засунуть в кэш. и необходимо этот кэш чистить/обновлять при добавлении/удалении топика.
avatar
нет, не лучше
но так у вас могут получиться id несуществующих топиков
avatar
если count не кэшировать, то такого не случиться. а даже если кэшировать, то на это есть апдейт, чистка кэша. и на сколько я помню, потом даже IN() не надо. берез три значения и засовываем их GetTopicAdditionalData.
avatar
а ок. кажется я понял, что вы имели в виду. ну так это просто. каждый id проверяем. даже это получается быстрее.

можно и просто тащить все id в массив, затем три случайных value
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.