Сышышь ты, выходи сюда,
поговорим !

PostMash

Опубликовано: 05.09.2018

видео postMash

Earth, Wind & Fire x Post Malone - September Congratulations | Press Play
Flector 5

Я уже рассматривал плагины сортировки страниц , рубрик и ссылок , теперь настала очередь плагина сортировки записей. К сожалению, приличного плагина сортировки постов не нашлось, а postMash хоть и выполняет свою работу, но по части удобства и функций он явно не дотягивает до приличного уровня. Но, как я уже сказал, других плагинов с требуемым мной набором функций нет, придется работать именно с ним. Сначала скажу зачем он мне вообще понадобился. Есть у меня в блоге прошлогодний пост, который я думаю обновить и при этом хочу, чтобы он заново попал и на главную страницу блога и в RSS ленту. Вот так сходу сможете назвать способы это реализовать, не публикуя этот пост с новой датой? Я не смог, а новую дату у статьи ставить не хочу, так как мне не нравится видеть годовалой давности комментарии у только что опубликованной статьи.



Скачиваем плагин с его домашней страницы и устанавливаем его:

1. Распаковываем архив.

2. Копируем папку postmash в /wp-content/plugins/ .

3. Заходим в админку блога на вкладку " Плагины " и активируем плагин.

Плагин уже заработал и в этом вы можете убедиться, открыв главную страницу своего блога – все записи теперь идут в хронологическом порядке, начиная с самого первого опубликованного поста в блоге. Это первый недостаток плагина, в нем нет никаких настроек вывода записей по умолчанию – мол, будьте добры вручную отсортировать сотни или даже тысячи записей в блоге, если вас не устраивает хронологический порядок.


Every mrhotdog101 best post mash up

Естественно, что меня это не устроило – после каждой публикации новой статьи лезть в настройки плагина и перетаскивать новую статью в начало списка удовольствие не из приятных. Чтобы это исправить открываем файл плагина postMash.php и заменяем строчку:

60 $pageposts = $wpdb -> get_results ( "SELECT * FROM $wpdb->posts WHERE post_type = 'post' ORDER BY menu_order" ) ;

$pageposts = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'post' ORDER BY menu_order");


PostMash.

на

60 $pageposts = $wpdb -> get_results ( "SELECT * FROM $wpdb->posts WHERE post_type = 'post' ORDER BY menu_order DESC" ) ;

$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 читалки вроде покажут записи с устаревшей датой. Чтобы это обойти вы должны зайти в нужные записи и заново их опубликовать, ничего в них не меняя (не меняя даты публикации в первую очередь). Это, конечно, не изменит положение постов в RSS ленте, но это изменит дату их последней модификации ( WordPress запоминает последнюю дату изменения записей), а это позволит нам чуточку исправить файл feed-rss2.php , где формируется RSS лента так, чтобы вместо даты создания поста там показывалась дата его последнего изменения. Откройте feed-rss2.php и замените строчку:

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>

<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>

<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