Intereting Posts
дублировать сообщения при попытке обновить сообщение, используя wp_insert_post. Лучший способ очистки сеанса при выходе из системы Вставка данных в MagicFields с использованием запросов mysql Как обновить пользовательский вариант блога? Невозможно обернуть мою голову вокруг этой функции – любая помощь будет оценена Связать весь размер изображений WordPress Как я могу создать функцию контроллера для иерархии шаблонов? Невозможно найти причину бесконечного цикла Загрузка сайта WordPress, но не отображается до тех пор, пока страница не будет прокручена jQuery, нарушающий мой сайт WordPress Как отобразить alt теги в img src? Создать запись, используя Ajax Правильный способ обновления пула таксономии с использованием register_taxonomy? Есть много мета для сообщений, лучше ли получать все сразу или каждый по отдельности Как ограничить изображения в v3.5 Media Library modal только теми, у которых есть определенный идентификатор сообщения?

Как я могу добавить количество комментариев к этим подстраницам текущего фрагмента страницы

У меня есть этот фрагмент

<ul> <?php global $id; wp_list_pages( array( 'title_li' => '', 'depth' => 1, 'child_of' => $id, 'sort_column' => 'post_title', 'show_date' => 'modified', 'date_format' => $date_format ) ); ?> </ul> 

Но как бы добавить это …

 <?php comments_number( 'no responses', 'one response', '% responses' ); ?> 

Итак, количество комментариев отображается после каждого заголовка страницы?

Пользовательский ходок может быть передан в wp_list_pages() используя параметр $walker .

Вот пользовательский ходок с именем WPSE_Walker_Page_Comment_Count() который основан на Walker_Page() по умолчанию, Walker_Page() . В этом случае мы только переопределяем метод start_el() . Результат был настроен для включения комментария.

Сначала добавьте код ходока в functions.php вашей темы или в плагин:

 class WPSE_Walker_Page_Comment_Count extends Walker_Page { // Copied from Walker_Page::start_el() core version v4.7.4. /** * Outputs the beginning of the current element in the tree. * * @see Walker::start_el() * @since 2.1.0 * @access public * * @param string $output Used to append additional content. Passed by reference. * @param WP_Post $page Page data object. * @param int $depth Optional. Depth of page. Used for padding. Default 0. * @param array $args Optional. Array of arguments. Default empty array. * @param int $current_page Optional. Page ID. Default 0. */ public function start_el( &$output, $page, $depth = 0, $args = array(), $current_page = 0 ) { if ( isset( $args['item_spacing'] ) && 'preserve' === $args['item_spacing'] ) { $t = "\t"; $n = "\n"; } else { $t = ''; $n = ''; } if ( $depth ) { $indent = str_repeat( $t, $depth ); } else { $indent = ''; } $css_class = array( 'page_item', 'page-item-' . $page->ID ); if ( isset( $args['pages_with_children'][ $page->ID ] ) ) { $css_class[] = 'page_item_has_children'; } if ( ! empty( $current_page ) ) { $_current_page = get_post( $current_page ); if ( $_current_page && in_array( $page->ID, $_current_page->ancestors ) ) { $css_class[] = 'current_page_ancestor'; } if ( $page->ID == $current_page ) { $css_class[] = 'current_page_item'; } elseif ( $_current_page && $page->ID == $_current_page->post_parent ) { $css_class[] = 'current_page_parent'; } } elseif ( $page->ID == get_option('page_for_posts') ) { $css_class[] = 'current_page_parent'; } /** * Filters the list of CSS classes to include with each page item in the list. * * @since 2.8.0 * * @see wp_list_pages() * * @param array $css_class An array of CSS classes to be applied * to each list item. * @param WP_Post $page Page data object. * @param int $depth Depth of page, used for padding. * @param array $args An array of arguments. * @param int $current_page ID of the current page. */ $css_classes = implode( ' ', apply_filters( 'page_css_class', $css_class, $page, $depth, $args, $current_page ) ); if ( '' === $page->post_title ) { /* translators: %d: ID of a post */ $page->post_title = sprintf( __( '#%d (no title)' ), $page->ID ); } $args['link_before'] = empty( $args['link_before'] ) ? '' : $args['link_before']; $args['link_after'] = empty( $args['link_after'] ) ? '' : $args['link_after']; // Get the comment count for the page. $comments_number = get_comments_number( $page->ID ); if ( 0 == $comments_number ) { $comments_number_output = __( '&nbsp;&mdash; No Repsonses', 'text_domain' ); } else { $comments_number_output = sprintf( /* translators: number of comments */ _nx( '&nbsp;&mdash; %1$s Response', '&nbsp;&mdash; %1$s Responses', $comments_number, 'comments title', 'text_domain' ), number_format_i18n( $comments_number ) ); } $output .= $indent . sprintf( '<li class="%s"><a href="%s">%s%s%s%s</a>', $css_classes, get_permalink( $page->ID ), $args['link_before'], /** This filter is documented in wp-includes/post-template.php */ apply_filters( 'the_title', $page->post_title, $page->ID ), $args['link_after'], sprintf( '<span class="comment-count">%s</span>', // Append comment count. $comments_number_output ) ); if ( ! empty( $args['show_date'] ) ) { if ( 'modified' == $args['show_date'] ) { $time = $page->post_modified; } else { $time = $page->post_date; } $date_format = empty( $args['date_format'] ) ? '' : $args['date_format']; $output .= " " . mysql2date( $date_format, $time ); } } } 

Затем в вашем шаблоне вызовите wp_list_pages() следующим образом:

 <ul><?php wp_list_pages( array( 'title_li' => '', 'depth' => 1, 'child_of' => get_the_ID(), 'sort_column' => 'post_title', 'show_date' => 'modified', 'date_format' => $date_format, 'walker' => new WPSE_Walker_Page_Comment_Count(), ) ); ?></ul> 

Обратите внимание, что я использовал get_the_ID() , который чище, чем использование глобальной переменной $id . Кроме того, $date_format никогда не определялся в вашем исходном коде. Самой важной частью является добавление параметра $walker , который сообщает wp_list_pages() использовать наш пользовательский ходок для генерации вывода.

Пример вывода (отформатирован для разборчивости):

 <ul> <li class="page_item page-item-1090"> <a href="http://example.com/parent-page/child-page-01/">Child Page 01<span class="comment-count">&nbsp;— 1 Response</span></a> </li> <li class="page_item page-item-1092"> <a href="http://example.com/parent-page/child-page-02/">Child Page 02<span class="comment-count">&nbsp;— No Responses</span></a> </li> <li class="page_item page-item-1094 page_item_has_children"> <a href="http://example.com/parent-page/child-page-03/">Child Page 03<span class="comment-count">&nbsp;— 2 Responses</span></a> </li> <li class="page_item page-item-1096"> <a href="http://example.com/parent-page/child-page-04/">Child Page 04<span class="comment-count">&nbsp;— No Responses</span></a> </li> <li class="page_item page-item-1098"> <a href="http://example.com/parent-page/child-page-05/">Child Page 05<span class="comment-count">&nbsp;— No Responses</span></a> </li> </ul>