Intereting Posts
wp_nav_menu () не работает на страницах категорий WordPress tax_input только при входе в систему Как регулярно создавать резервные копии и обновлять веб-сайт WordPress с большим количеством изображений? Содержимое страницы WordPress вне WordPress Как ограничить пользователя выбором 1 категории для публикации Использование заголовка сообщения в качестве термина в запросе, только работа с одиночными названиями слов Штрих-код галереи, показывающий идентификаторы Селектор изображений в пользовательском виджете Использование настраиваемого поля для изменения текста alt для выделенного изображения Страница WordPress не найдена, если параметры Permalink являются почтовыми именами Интернационализировать плагин, поэтому строки могут быть переведены в WPML Получить значение настраиваемого поля Будет ли документация php противоречить документации WordPress? URL-адрес почтового ящика переадресовывается на URL-адрес страницы, который является slug-префиксом сообщения. Восстановить несколько сообщений до более старой версии?

Как получить 5 последних комментариев и каждого комментария 5 последних ответов (детей)

Я хочу получить 5 последних комментариев и 5 последних комментариев (комментариев) каждого комментария в порядке убывания. Со следующим кодом я могу получить 5 комментариев от комментариев, но не будет отличать комментарии от ответов, которые приводят к списку комментариев независимо от их «типа» (комментарий или ответ). Как я могу это сделать?

<?php $comments = get_comments(array( 'post_id' => $id, 'status' => 'approve', 'number' => '5' //Number of comments )); if ( have_comments() ) : ?> <?php $args = array( 'walker' => null, 'max_depth' => '2', 'style' => 'div', 'callback' => customComment, // templates/comment-template.php 'end-callback' => null, 'type' => 'all', 'reply_text' => 'Reply', 'page' => '', 'per_page' => '', 'avatar_size' => 32, 'reverse_top_level' => false, 'reverse_children' => false, 'format' => 'html5', // or 'xhtml' if no 'HTML5' theme support 'short_ping' => false, // @since 3.6 'echo' => true // boolean, default is true ); ?> <?php wp_list_comments( $args ); ?> 

Solutions Collecting From Web of "Как получить 5 последних комментариев и каждого комментария 5 последних ответов (детей)"

Чтобы перечислить самые последние (5) комментарии, вы можете использовать этот код:

 $sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,comment_author_url, SUBSTRING(comment_content,1,50) // NUMBER OF CHARACTERS AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND post_password = '' ORDER BY comment_date_gmt DESC LIMIT 5"; // NUMBER OF COMMENTS $comments = $wpdb->get_results($sql); $output = $pre_HTML; $output .= "\n<ul>"; foreach ($comments as $comment) { $output .= "\n<li>"."<a href=\"" . get_permalink($comment->ID) . "#comment-" . $comment->comment_ID . "\" title=\"on " . $comment->post_title . "\">" .strip_tags($comment->comment_author) .":<br/><div>" . strip_tags($comment->com_excerpt) ."</div></a></li>"; } $output .= "\n</ul>"; $output .= $post_HTML; echo $output; ?> 

Он выведет комментарии в этой разметке HTML:

 <ul> <li> <a href="http://domain.tld/post#comment-01" title="on Post Title">Comment Author:<br /> <div>This is the first 50 characters of the first most recent comment</div></a> </li> <li> <a href="http://domain.tld/post#comment-01" title="on Post Title">Comment Author:<br /> <div>This is the first 50 characters of the first most recent comment</div></a> </li> <li> <a href="http://domain.tld/post#comment-01" title="on Post Title">Comment Author:<br /> <div>This is the first 50 characters of the first most recent comment</div></a> </li> <li> <a href="http://domain.tld/post#comment-01" title="on Post Title">Comment Author:<br /> <div>This is the first 50 characters of the first most recent comment</div></a> </li> <li> <a href="http://domain.tld/post#comment-01" title="on Post Title">Comment Author:<br /> <div>This is the first 50 characters of the first most recent comment</div></a> </li> </ul> 

Но я не уверен, как вы можете перечислить детей комментария. Может быть, что-то вроде этого должно дать вам первый ответ на последний комментарий, но вам придется настроить его, чтобы работать:

 $args = array( 'status' => 'approve', 'number' => '5', 'post_id' => $post_id, 'parent' => $parrent ); $comments = get_comments($args);