Como posso controlar as contagens de comentários filtrando minhas respostas de CPT?

4

Estou desenvolvendo um plug-in que está usando a tabela de comentários com comment_type personalizado para respostas de CPT. O problema é que recebo respostas ao meu CPT na página Comentários ( /wp-admin/edit-comments.php ). Então eu usei um filtro para colocá-los fora da lista de comentários. Ele está funcionando bem e retirando minhas respostas do CPT da tabela da lista (mesmo na lixeira). Mas os comentários (respostas) de que na lixeira está mostrando uma contagem, se eu desativar meu filtro, esses comentários (respostas) estão lá, então a contagem é real.

Como você pode ver nesta captura de tela, meu filtro está ativo, todas as minhas respostas de CPT estão ocultas e apenas um único comentário na lista é de tipo de postagem post , mas a contagem mostra os dados reais (3) como eu tenho 2 respostas CPT na lixeira.

Mas eu quero que a contagem seja real com a visão. Como a visão contém um único comentário (porque estou ocultando as respostas do CPT com um filtro personalizado), preciso mostrar a contagem como da view (1). Eu estou lutando para encontrar um filtro apropriado para isso.

Então, como eu posso controlar as contagens de comentários (em pendentes, spam e lixo) filtrando minhas respostas de CPT?

    
por Mayeenul Islam 06.11.2015 / 14:27

1 resposta

2

Aqui estão três métodos diferentes para modificar a contagem trash , para 999 como exemplo:

Método 1

O 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

O 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

Aqui, segmentamos a tela edit-comments.php e ajustamos a instância correspondente da função 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 );
} );

Similarmente para as contagens pendentes e spam .

    
por birgire 23.11.2015 / 04:20