Как закрепить наверху нужный вам пост? Как прилепить (прикрепить) нужную вам запись вверху ленты? Иными словами, как сделать, чтобы выбранная вами запись всегда была первой, даже если после того, как вы продолжите добавлять в блог новые записи? Согласитесь, что подобное желание у блоггера возникает часто, ибо это первое, что приходит на ум, когда вы думаете над тем, как сделать так, чтобы определенную запись увидело и прочитало как можно больше посетителей вашего блога. Особенно часто такая необходимость возникает при размещении в блоге рекламных записей или объявлений.
Так вот, если у вас тоже возникла такая проблема, то решить вы ее сможете двумя способами:
1) с помощью плагина WP-Sticky, разработанного автором Lester ‘GaMerZ’ Chan .
2) изменив код в файле index.php в папке со своим шаблоном.
Начнем с первого способа. С плагина WP-Sticky. Сейчас в сети многие блоггеры предлагают скачать русифицированный WP Sticky 1.30. Так сделал и я. Скачал, разархивировал, выложил папку wp-sticky в папку wp-content/plugins , которая хранится на сервере и активировал добавленный плагин в админпанели блога. И получил в результате белую страницу – у меня пропали все записи – остались только колонки, «шапка» и «футер».
Стал разбираться. Начал разборки с посещения страницы автора плагина Lester ‘GaMerZ’ Chan. Оказалось, что версия плагина 1.3 WP-Sticky с версиями WordPress 2.7 и 2.8 не работает. В настоящее время самой новой версией плагина является версия WP-Sticky 1.5, которая и рассчитана на работу с версиями WordPress 2.7 и 2.8 .
Напомню, что у меня в моих блогах сейчас используется версия WordPress 2.8.4 , а это означает, что надеяться на работу версии плагина WP-Sticky 1.3 не приходилось. Естественно, что я скачал новую версию … Ну, а дальше все традиционно по схеме. В результате на страничке написания записей у меня появилось дополнительное меню со статусом записи.
Правда, возникла другая проблема – это дополнительное меню было на английском языке. Но эту проблему я быстро решил путем заливки в папку с плагином на сервере двух файлов – wp-sticky-ru_RU.mo и wp-sticky-ru_RU.po с русским переводом (спасибо переводчику плагина Анне Озерицкой!), взяв эти файлы из папки со старой, но зато русифицированной, версией плагина.
Теперь при написании поста у блоггера появляется возможность выбрать тип записи. По умолчанию записи имеют обычный тип. Если же вы хотите, чтобы какая-то запись всегда была на вашем блоге первой, достаточно будет присвоить ей тип – прилепленная. Если вы хотите, что бы статус записи отображался и в самой записи, тогда необходимо поставить в шаблоне темы следующую строку .
Кроме того, вы можете с помощью плагина WP-Sticky 1.5 присвоить какой-то записи тип – объявление. В этом случае вы сможете вывести эту запись в любом месте вашей темы, предварительно прописав там в коде шаблона строчку , но обращаю ваше внимание на то, что запись-объявление будет работать корректно только в том случае если для вывода даты у вас используется функция the_date().
Теперь по второму способу закрепления наверху нужного поста, то есть изменив код в файле index.php в папке со своим шаблоном. Такой способ рекомендуют на блоге WordPressHelp, предлагая в зависимости от вашего шаблона отредактировать файлы шаблона home.php, index.php или page.php , то есть редактировать надо те файлы, которые выводят информацию на главную страницу вашего блога.
Для этого авторы предлагают найти сначала в коде файлов своего шаблона следующие строчки:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
Эта конструкция заканчивается строчками:
<?php endwhile; else: ?> <p>Извините, но по вашему запросу ничего не найдено.</p> <?php endif; ?>
Конец предлагается оставить таким же, а вот первые строчки кода заменить на следующую конструкцию:
<?php if (have_posts()) : ?> <?php $my_query1 = new WP_Query('category_name=featured&showposts=1'); ?> <?php while ($my_query1->have_posts()) : $my_query1->the_post(); ?>
Прописав в шаблоне строчку, предложенную в примере, авторы обещают, что этим самым вы закрепите нужный вам пост под номером № 1, после чего закрепленный пост можно будет при желании выделить с помощью таблиц стилей.
Я произвел все предлагаемые авторами изменения в коде, но нужного результата, к сожалению, не получил. Почему? Я не знаю … Вполне возможно, что у меня «кривые руки», а, может быть, просто не срабатывает предлагаемая авторами блога конструкция. Во всяком случае, я предлагаю каждому блоггеру поэкспериментировать с этой конструкцией самому, а потом отписаться о полученных результатах в комментариях к этой записи.
Я же решил, что экспериментировать больше не буду. Просто нет лишнего времени. А проблему же закрепления нужного поста наверху в своих блогах в дальнейшем буду решать с помощью плагина WP Sticky 1.50, ибо первый способ мне показался проще … Во всяком случае, при желании плагин позволяет обойтись без копания в коде, что для многих начинающих блоггеров (хотя сразу скажу, что себя лично я к начинающим не отношу, ибо данный блог у меня уже n-ный по счету) может вызвать определенные затруднения.


Апрель 15th, 2010 at 2:41 пп
Столкнулся с той же проблемой в версии 1.30. Статья реально помогла.
Август 7th, 2010 at 12:11 дп
Версия 1.5 – у меня так же не сработала. Второй метод пока еще не пробовал..
Сентябрь 17th, 2010 at 1:40 дп
Тоже пробовал вторым способом, ничего не получилось! В админке есть фишка как закрепить пост на главной, по верх всех остальных постов, тоже ничего не вышло! Пост «уходил» вниз по мере наполнения страницы. Покопался в сети, там умные люди сказали что фишка эта работает не со всеми шаблонами. Так что беру на вооружение плагин WP Sticky!
Ноябрь 14th, 2010 at 4:48 пп
Спасибо автору этого поста! Поставил WP-Sticky на версию WP 3.0.1 и всё стало работать корректно сразу после активации. Ничего переделывать не надо! Единственный вопрос по поводу статуса Объявления… Разъясните, пожалуйста, дилетанту, как можно подробнее, каким образом можно вывести это объявление в любом месте? Это очень интересная опция, согласитесь?
Ноябрь 14th, 2010 at 5:01 пп
Объявление можно вывести в любом месте вашей темы при помощи < ?php announcement_banner(); ?> , но, обращаю ваше внимание на то, что объявление будет работать корректно только в том случае, если для вывода даты у вас используется функция the_date(). В целом, для вывода нужных объявлений в любом месте годится почти любой плагин, позволяющий выводить на блоге баннеры … например, подойдет плагин WPAds