Intereting Posts
Цикл сообщений с разбивкой по страницам на одной странице Должен ли я устанавливать html-базовый url при использовании wordpress? Как сделать несколько страниц администратора для одного плагина? Несколько доменов с разными дочерними темами на одной установке? Отображать содержимое шаблона страницы (get_page) Изображение не отображается с использованием пользовательской функции и get_post_meta Код настройки по умолчанию Настроить функции для переопределения без использования функции function_exists () путем их короткого замыкания? Как я могу перетаскивать и изображение без отображения окна медиа-библиотеки? смысл admin-ajax разные темы на одном веб-сайте Как просмотреть идентификаторы категории Word по умолчанию? Как сбросить канонические URL-адреса / исправить цикл перенаправления CSS не загружается на мобильные устройства Как создать пользовательский пакет установки WordPress?

Как получить 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 ); ?> 

Чтобы перечислить самые последние (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);