postMash
Я уже рассматривал плагины сортировки страниц, рубрик и ссылок, теперь настала очередь плагина сортировки записей. К сожалению, приличного плагина сортировки постов не нашлось, а postMash хоть и выполняет свою работу, но по части удобства и функций он явно не дотягивает до приличного уровня. Но, как я уже сказал, других плагинов с требуемым мной набором функций нет, придется работать именно с ним. Сначала скажу зачем он мне вообще понадобился. Есть у меня в блоге прошлогодний пост, который я думаю обновить и при этом хочу, чтобы он заново попал и на главную страницу блога и в RSS ленту. Вот так сходу сможете назвать способы это реализовать, не публикуя этот пост с новой датой? Я не смог, а новую дату у статьи ставить не хочу, так как мне не нравится видеть годовалой давности комментарии у только что опубликованной статьи.
Скачиваем плагин с его домашней страницы и устанавливаем его:
1. Распаковываем архив.
2. Копируем папку postmash в /wp-content/plugins/.
3. Заходим в админку блога на вкладку "Плагины" и активируем плагин.
Плагин уже заработал и в этом вы можете убедиться, открыв главную страницу своего блога – все записи теперь идут в хронологическом порядке, начиная с самого первого опубликованного поста в блоге. Это первый недостаток плагина, в нем нет никаких настроек вывода записей по умолчанию – мол, будьте добры вручную отсортировать сотни или даже тысячи записей в блоге, если вас не устраивает хронологический порядок.
Естественно, что меня это не устроило – после каждой публикации новой статьи лезть в настройки плагина и перетаскивать новую статью в начало списка удовольствие не из приятных. Чтобы это исправить открываем файл плагина postMash.php и заменяем строчку:
60 | $pageposts = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'post' ORDER BY menu_order"); |
на
60 | $pageposts = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'post' ORDER BY menu_order DESC"); |
После этого заходим в "Записи\postMash" и жмем кнопку "Update". Дожидаемся появления таблички "Database Updated!". Если с первого раза она не появилась, то жмем еще раз. После этого мы видим все тот же хронологический список статей. Чтобы увидеть обратный хронологический список надо еще раз зайти в "Записи\postMash" (то есть обновить страницу). Увидели этот список, который начинается с последних опубликованных статей? Жмем опять на "Update" до появления "Database Updated!". Теперь и в блоге у вас все записи идут, начиная с последних опубликованных, то есть как до установки плагина вообще.
Вот теперь вы можете заняться непосредственно сортировкой записей. Все, что вы можете сделать это перетащить пост в новое место, а также быстро указать опубликован он или это черновик (совершенно бесполезный функционал). В этом второй большой недостаток плагина - он не предоставляет никакой возможности выбрать посты по дате или по рубрике. То есть если вам надо переместить какой-то пост из определенной рубрики так, чтобы он стал первым в этой рубрике вам надо вручную искать куда этот самый пост впихнуть, чтобы он стал первым в рубрике, но при этом не попал на главную страницу. Когда в блоге сотни статей сделать это не так просто, как кажется. Как это исправить я не знаю: попробовал плагин
Отсортировали свои записи так, что некоторые из них попали на главную страницу блога? Откройте теперь RSS ленту и убедитесь, что хотя эти посты в ней присутствуют они находятся в конце списка. По вполне понятной причине – сортировка в ленте осуществляется по дате создания поста. Следовательно, весьма сомнительно, что популярные RSS читалки вроде
39 | <pubdate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubdate> |
на
39 | <pubdate><?php echo mysql2date('D, d M Y H:i:s +0000', get_the_modified_time('Y-m-d H:i:s', true), false); ?></pubdate> |
Что в итоге после всех исправлений получилось: все записи в блоге идут в обратном хронологическом порядке (новые записи первые в списке), мы можем заново опубликовать любой старый пост первым в блоге, не меняя дату его публикации и при этом он опять будет показан в RSS-ленте. Это идеальный вариант для блогеров имитировать активность в блоге, даже если он временно блогером заброшен. А я этими исправлениями решил свою проблему с публикацией старой записи, как новой без изменения даты публикации.
PS. Деактивация плагина вернет сортировку записей по умолчанию, так что можете не бояться за испорченный порядок показа записей в блоге.
Автор плагина:
Страница плагина:
Рассматриваемая версия: 1.2.0 от 12.08.2009
Совместимость с версией WordPress: 2.1 и выше.
Понравился пост? Подпишись на обновления по RSS или Twitter !
#21,
Долго искал решение подобной задачи. Почему-то никто не делает плагинов хороших для статей. Ну, что поковырялся по вашей инструкции с кодами - все работает вроде :-) Спасибо за "наводку"!