patrik
  • 0
Новичок

Отображение сообщений в зависимости от количества комментариев и последних комментариев?

  • 0

Я хотел бы иметь возможность отображать список сообщений на странице в зависимости от того, когда и сколько комментариев они получили. Что-то похожее на то, как здесь, на stackexchange.

Чтобы быть более конкретным, я хочу:

  • Страница с наиболее комментируемыми постами.
  • Страница с последними комментируемыми сообщениями.
  • Страница со всеми неоткомментированными постами.

Помощь с этим будет очень признательна, спасибо заранее.

Share
  1. @Patrik : Где и как вы хотите их отображать? Как прилепленные сообщения, виджет боковой панели или что-то еще? Более подробная информация поможет нам ответить.

    • 0
    • В виде страницы со списком постов блога. Точно так же, как в блоге, но вместо того, чтобы сначала отображалась последняя запись, вторая последняя запись после нее и т. д., они отображаются в зависимости от условий, упомянутых выше. Я надеюсь, вы понимаете, что я имею в виду, английский не мой основной язык 🙂

      • 0
  2. query_posts( array('orderby' => 'comment_count', 'order'=>'DESC') )
    

    Это должно сделать это.

    • 0
  3. $query = WP_Query;
    
    foreach ($query['posts'] as $post){
      $count = $post['comment_count'];
      while (is_set($comment_sort[$count]){
       $count--;
      }    
      $comment_sort[$count]=$post['ID'];
    }
    
    $sorted = ksort($comment_sort);
    $sorted = array_reverse($sorted);
    

    это должно дать вам массив идентификаторов сообщений в порядке убывания количества комментариев.

    • 0
  4. @Patrik — у меня была похожая проблема: в установке WPMu показывать последние сообщения в порядке их поступления в основном блоге. Самым простым решением для меня было создать новую таблицу, содержащую данные для новых сообщений в блоге (новые сообщения вставляются через плагин), и запросить эту таблицу для главной страницы. Вы можете сделать то же самое и просто отредактировать SQL-запрос, чтобы он возвращался на основе большинства комментариев и т. д.

    • 0
  5. Посты с последними комментариями:

    $comments = get_comments( array(
        'status' => 'approve',
        'number' => 10
    ) );
    
    $include = array();
    
    foreach ( $comments as $comment )
        $include[] = $comment->comment_post_ID;
    
    query_posts( array(
        'post__in' => array_unique( $include )
    ) );
    
    • 0
  6. Фрагмент кода для отображения постов с наибольшим количеством комментариев:

    <?php 
    $result = $wpdb->get_results("SELECT comment_count, ID, post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 10"); // NUMBER OF POSTS
    foreach ($result as $topten) {
        $postid = $topten->ID;
        $title = $topten->post_title;
        $commentcount = $topten->comment_count;
        if ($commentcount != 0) {
    ?>
    
    <li><a href="<?php echo get_permalink($postid); ?>"><?php echo $title ?></a></li>
    
    <?php } } ?>
    
    • 0

Оставить ответ

You must login to add an answer.