Плагин Post Sorting Reloaded. Как добавить возможно сортировки записей по последнему комментарию?

Отличный плагин, но этой функции в нем очень не хватает.

6 Комментарии

  1. Насколько я знаю в базе постов нет сведений о дате последнего комментария – как вы собрались делать выборку?

    • Но ведь можно узнать дату последнего комментария, из комментария выудить id поста, и потом отсортировать эти посты. Задача нетривиальная, но выполнимая. Посмотрите на эту страницу – https://n-wp.ru/all-comments. На ней все комментарии в хронологичестком порядке. Если из шаблона убрать ник и текст комментария, то получится список постов, отсортированный по последним комментариям. Единственный недостаток – посты будут дублироваться, но и эта задача решаемая. Наверняка в базе есть что-то навроде last_udated.
      Например, есть плагин Sort by Comments – http://wordpress.org/extend/plugins/sort-by-comments/.

  2. У меня просьба. Если кто-то решит проблемку, пусть скинет сюда кусочек кода.

    • Можно добавить фрагмент в functions.php активной темы:

      function allow_sorting_by_latest_comment($sql) {
      	global $wpdb;
      
      	$custom_order = psr_custom_order('');
      
      	if ( false !== strpos($custom_order, 'latest_comment') ) {
      		$sql .= "LEFT JOIN (SELECT comment_post_ID, MAX(comment_date) AS date FROM {$wpdb->comments} WHERE comment_approved = 1 GROUP BY comment_post_ID) AS latest_comment " .
      			"ON latest_comment.comment_post_ID = {$wpdb->posts}.ID";
      	}
      
      	return $sql;
      }
      add_filter('posts_join', 'allow_sorting_by_latest_comment');
      

      Затем в настройках Post Sorting Reloaded указать: latest_comment.date DESC

      • Спасибо за полезное дополнение. Только вот один момент… Если в сайдбаре выводятся какие-то записи из рубрик (например “Свежие новости”), и если перейти на страницу категории которая отсортированная по последнему комментарию, записи в виджете сайдбара тоже цепляет. И получается “Свежие новости” не совсем свежие а тоже отсортированны по последнему комменту… Скажите, пожалуйста, как сделать так чтобы сортировались только страницу с нужной категорией записей?

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*