WP_Query с постами, отсортированными по дате комментариев - PullRequest
0 голосов
/ 19 марта 2019

То же, что и заголовок: мне нужно сделать цикл Wordpress, который будет отображать сообщения, отсортированные по дате комментариев. Как и на форуме, первым является пост с последним комментарием.

1 Ответ

0 голосов
/ 19 марта 2019

Это интересно. Там могут быть два подхода, которые могут решить эту проблему. 1 -

$args = array(
    'status' => 'approve',
    'order' => 'DESC'
);

$comments = get_comments( $args );
$ids = array();

foreach ( $comments as $comment ) {

     $post = get_post( $comment->comment_post_ID );

     if(!in_array($post->ID, $ids):
        $ids[] = $post->ID;
        echo $post->title;
     endif;

}

2 - Добавьте действие, чтобы добавить мета в пост к дате последнего комментария.

add_action('comment_unapproved_to_approved', 'wpc_2511_comment_approved');
function wpc_2511_comment_approved($comment) {
    $comment_post_ID = $comment->comment_post_ID;
    $date = $comment->comment_date;
    update_post_meta( $comment_post_ID, '_recent_comment_date', $date );

}

Затем напишите строку запроса, чтобы получить сообщения, отсортированные по meta_key & meta_value. Descending Нравится:

$args = array(
  'post_status'       => 'publish',
  'post_type'         => 'post'
  'meta_key'          => '_recent_comment_date',
  'orderby'           => 'meta_value_num',
  'order'             => 'DESC'
);

Надеюсь, это поможет вам:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...