Como eu adicionaria a contagem de comentários a estas subpáginas do snippet de página atual

Eu tenho esse trecho

    '', 'depth' => 1, 'child_of' => $id, 'sort_column' => 'post_title', 'show_date' => 'modified', 'date_format' => $date_format ) ); ?>

Mas como eu adicionaria isso …

  

Então, o número de comentários é exibido após o título de cada página?

Solutions Collecting From Web of "Como eu adicionaria a contagem de comentários a estas subpáginas do snippet de página atual"

Um walker personalizado pode ser passado para wp_list_pages() usando o parâmetro $walker .

Aqui está um walker personalizado chamado WPSE_Walker_Page_Comment_Count() que é baseado no caminhante de página padrão, Walker_Page() . Estamos apenas substituindo o método start_el() neste caso. A saída foi personalizada para include a contagem de comentários.

Primeiro, adicione o código walker às functions.php do seu tema.php ou a um plugin:

 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 classs 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 classs 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_classs = 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 = __( ' — No Repsonses', 'text_domain' ); } else { $comments_number_output = sprintf( /* translators: number of comments */ _nx( ' — %1$s Response', ' — %1$s Responses', $comments_number, 'comments title', 'text_domain' ), number_format_i18n( $comments_number ) ); } $output .= $indent . sprintf( '
  • https://wordpress.stackexchange.com//questions/267058/how-would-i-add-the-comment-count-to-this-sub-pages-of-current-page-snippet/%shttps://wordpress.stackexchange.com//questions/267058/how-would-i-add-the-comment-count-to-this-sub-pages-of-current-page-snippet/%shttps://wordpress.stackexchange.com//questions/267058/how-would-i-add-the-comment-count-to-this-sub-pages-of-current-page-snippet/%shttps://wordpress.stackexchange.com//questions/267058/how-would-i-add-the-comment-count-to-this-sub-pages-of-current-page-snippet/%s', $css_classs, 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( 'https://wordpress.stackexchange.com//questions/267058/how-would-i-add-the-comment-count-to-this-sub-pages-of-current-page-snippet/%s', // 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 ); } } }
  • Em seguida, em seu modelo, chame wp_list_pages() assim:

     
      < ?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(), ) ); ?>

    Observe que usei get_the_ID() , que é mais limpo do que usar a variável $id global. Além disso, $date_format nunca foi definido em seu código original. A parte mais importante é a adição do parâmetro $walker , que informa wp_list_pages() para usar nosso walker personalizado para gerar saída.

    Exemplo de saída (formatado para legibilidade):