¿Cómo puedo controlar los recuentos de comentarios que filtran mis respuestas de CPT?

4

Estoy desarrollando un complemento que usa la tabla de comentarios con comment_type personalizado para las respuestas de CPT. El problema fue que recibí respuestas a mi CPT en la página Comentarios ( /wp-admin/edit-comments.php ). Así que usé un filtro para eliminarlos de la lista de comentarios. Está funcionando bien, y eliminando mis respuestas a CPT de la tabla de la lista (incluso en la papelera). Pero los comentarios (respuestas) que en la papelera muestran un recuento, si desactivo mi filtro, esos comentarios (respuestas) están ahí, por lo que el recuento es real.

Como se puede ver en esta captura de pantalla, mi filtro está activo, todas mis respuestas de CPT están ocultas, y solo un solo comentario en la lista es del tipo de publicación post , pero el recuento muestra los datos reales (3) ya que tengo 2 respuestas de CPT desechadas.

Pero quiero que la cuenta sea real con la vista. Como la vista contiene un solo comentario (porque estoy ocultando las respuestas CPT con un filtro personalizado), debo mostrar el recuento a partir de la vista (1). Estoy luchando por encontrar un filtro apropiado para eso.

Entonces, ¿cómo puedo controlar los recuentos de comentarios (pendientes, correo no deseado y basura) que filtran mis respuestas de CPT?

    
pregunta Mayeenul Islam 06.11.2015 - 14:27

1 respuesta

2

Aquí hay tres métodos diferentes para modificar el recuento de basura , a 999 como ejemplo:

Método # 1

El filtro views_edit-comments :

add_filter( 'views_edit-comments', function( $views ) 
{
    $trash_count = 999; // <-- Adjust this count

    // Override the 'trash' link:
    $views['trash'] = sprintf(
      "<a href=%s>%s <span class='count'>(<span class='trash-count'>%d</span>)</span></a>",
      esc_url( admin_url( 'edit-comments.php?comment_status=trash') ),
      __( 'Trash' ),
      $trash_count
    );
    return $views;
} );

Método # 2

El filtro comment_status_links :

add_filter( 'comment_status_links', function( $status_links ) 
{
    $trash_count = 999; // <-- Adjust this count

    // Override the 'trash' link:
    $status_links['trash'] = sprintf(
      "<a href=%s>%s <span class='count'>(<span class='trash-count'>%d</span>)</span></a>",
      esc_url( admin_url( 'edit-comments.php?comment_status=trash') ),
      __( 'Trash' ),
      $trash_count
    );
    return $status_links;
} );

Método # 3

Aquí nos dirigimos a la pantalla edit-comments.php y ajustamos la instancia correspondiente de la función wp_count_comments() :

add_filter( 'load-edit-comments.php', function() 
{
    add_filter( 'wp_count_comments', function( $stats, $post_id )
    {
        static $instance = 0;
        if(  2 === $instance++ )
        {
            $stats = wp_count_comments( $stats, $post_id );

            // Set the trash count to 999
            if ( is_object( $stats ) && property_exists( $stats, 'trash' ) )
                $stats->trash = 999; // <-- Adjust this count
        }
        return $stats;
    }, 10, 2 );
} );

Del mismo modo para los recuentos pendiente y spam .

    
respondido por el birgire 23.11.2015 - 04:20

Lea otras preguntas en las etiquetas