Детальную заметку про создание и оформление sticky post я уже размещал + была публикация про закрепленные записи в категориях блога, которые получилось сделать без дополнительных модулей. Но иногда возникают ситуации, когда все же проще использовать готовые плагины (особенно удобно, если под вашу задачу такие существуют).
Изначально мне нужно было разобраться с ограничением длительности закрепления постов, но позже я нашел еще несколько интересных решений. Публикую их списком все подряд без какого-либо рейтинга.
Также следует заметить, что некоторые плагины достаточно старые, поэтому гарантий 100% работоспособности здесь, разумеется, нет. Если вам попался неработающий вариант, то придется его «разбирать и допиливать». Однако преимущество такого подхода в том, что, как минимум, бэкенд часть уже имеется, и вам лишь надо будет найти ошибку или модифицировать логику работы.
Expire Sticky Posts
Post Expirator
- перевод объекта в состояние черновика, приватной статьи либо отправить его в корзину или удалить;
- активация/деактивация функции «липкой» записи;
- действия с категориями: заменить, добавить, убрать.
Для функционирования плагина нужен WP-CRON + вы можете отображать дату свершения события через шорткод [postexpirator]. Также в плюсы я бы занес 90тыс(!) загрузок и время релиза полгода назад (по сравнению с остальными это мало). Однако с тех пор уже накопилось 5 нерешенных ошибок, и в отзывах люди пишут, что есть проблемы с работоспособностью. Хочется верить, что автор все же объявится.
Sticky Posts – Switch
Изначально я думал, что модуль просто добавляет новую колонку в разделе списка записей в админке, чтобы вы легко и быстро могли поставить «звездочку» в ней, и тем самым закрепить пост (как в Featured товар в Woocommerce).
Из плюсов также могу выделить некоторые параметры для иконки/колонки закрепления и относительно молодой возраст последнего релиза (2 месяца). Судя по странице описания есть парочка ошибок, которые, надеюсь, разработчик скоро исправит.
По сути, это решение заменяет парочку других:
- SM Sticky Clicky Star – проставляет «звездочки» в админке для быстрой активации «липкой функции» (обновление около года назад, 1000+ скачиваний).
- Seamless Sticky Custom Post Types – как понятно из названия, включает sticky возможность и для других пользовательских таксономий (возраст — 5 лет, 3000+ загрузок).
- Sticky By CVMH solutions – аналогичен предыдущему пункту (3 года назад и всего 200+ скачиваний).
Ultimate Sticky Posts Widget
По настройкам он мне напоминает виджет списка постов из категории Category Posts Widget. Судя по описанию, здесь вы можете работать с прикрепленными записями или обычными (либо сразу с обеими). Параметры для вывода информации на сайте вполне типичные: отображение заголовка, анонса, миниатюры, количество заметок, рубрики и т.п.
Не понимаю, почему другие плагины последних постов не включают в свои настройки опцию sticky post или все же есть такие (не премиальной версии)? Удалось найти только лишь Ultimate Posts Widget (но я его не тестировал).
А еще в качестве альтернативы можно попробовать следующий сниппет:
function wpb_latest_sticky() { /* Get all sticky posts */ $sticky = get_option( 'sticky_posts' ); /* Sort the stickies with the newest ones at the top */ rsort( $sticky ); /* Get the 5 newest stickies (change 5 for a different number) */ $sticky = array_slice( $sticky, 0, 5 ); /* Query sticky posts */ $the_query = new WP_Query( array( 'post__in' => $sticky, 'ignore_sticky_posts' => 1 ) ); // The Loop if ( $the_query->have_posts() ) { $return .= '<ul>'; while ( $the_query->have_posts() ) { $the_query->the_post(); $return .= '<li><a href="' .get_permalink(). '" title="' . get_the_title() . '">' . get_the_title() . '</a><br />' . get_the_excerpt(). '</li>'; } $return .= '</ul>'; } else { // no posts found } /* Restore original Post Data */ wp_reset_postdata(); return $return; } add_shortcode('latest_stickies', 'wpb_latest_sticky'); |
Он добавляет в систему шорткод [latest_stickies] и выводит 5 последних «липких» публикаций. Источник кода находится тут. Чтобы хак срабатывал и в текстовых виджетах, добавьте в functions.php строку:
add_filter('widget_text', 'do_shortcode'); |
Category Sticky Post
В самом начале я уже упоминал статью про закрепленные записи в категориях без каких-то доп.установок, но здесь решение куда более универсальное. В настройках любого поста вы можете отображать его самым первым в любой из рубрик сайта. То есть в моем случае это была автоматически та же категория, к которой принадлежит заметка, а тут же разрешается выбрать какую угодно.
Кроме того, можно видеть закрепленный статус в админке, имеется базовое оригинальное оформление элемента, локализация и др. На самом деле очень интересная идея, но есть и минусы: разрешается выбрать только один пост для категории, обновления выходили аж 3 года назад и, судя по комментариям автора, в ближайшем будущем реанимировать плагин у него не получится. Возможно, сможете допилить его под свои задачи.
Sticky Posts In Category
Модуль заброшен также около 3х лет назад, как и предыдущий, хотя и имеет 1000+ скачивания и высшую оценку. Он фактически выполняет то же самое, что и мой сниппет, дважды упомянутый выше, — т.е. автоматически выводит липкие статьи сверху в архивах соответствующих рубрик. Никаких доп.настроек тут нет, все делается автоматически после установки.
Итого. Из всех плагинов закрепленных постов в WordPress больше всего меня впечатлили Post Expirator и Sticky Posts – Switch, т.к. они обладают максимальной функциональностью. Первый позволяет менять состояние записей (а не только липкую функцию), во втором к работе подключаются пользовательские таксономии, что тоже круто. Остальные модули обновлялись достаточно давно, хотя со счетов я бы их не сбрасывал — при желании или наличии соответствующей задачи их можно допиливать под свои нужды.