Olá,
Não é possível alterar o valor daquela coluna sem modificar os arquivos do WordPress. Para isso você vai precisar remover aquela coluna e colocar outra no lugar.
Eu não testei o código abaixo, mas ele deve pelo menos servir de começo para o que você quer fazer:
/**
* Altera as colunas da tela de lista de usuários
*
* @param array $columns Array com as colunas.
* @return array Array com as colunas alteradas.
*/
function wpbr_86681_manage_users_columns( $columns ) {
// Remove a coluna padrão do WordPress.
unset( $columns['posts'] );
// Insere uma nova.
$columns['custom_posts_count'] = __( 'Posts' );
return $columns;
}
add_filter( 'manage_users_columns', 'wpbr_86681_manage_users_columns' );
/**
* Popula o valor da nova coluna
*
* @param string $value Valor da célula até agora.
* @param string $column_name Nome da coluna.
* @param int $user_id ID do usuário.
* @return string Valor final da célula.
*/
function wpbr_86681_manage_users_custom_column( $value, $column_name, $user_id ) {
if ( 'custom_posts_count' === $column_name ) {
$total_count = 0;
// Lista com os CPTs que devem ser contados. Altere para os slugs do SEU CPT.
$custom_post_types = [ 'slug_cpt_1', 'slug_cpt_2', 'slug_cpt_3' ];
foreach ( $custom_post_types as $cpt ) {
$cpt_count = count_many_users_posts( [ $user_id ], $cpt );
$total_count += $cpt_count[ $user_id ];
}
return $total_count;
}
return $value;
}
add_action( 'manage_users_custom_column', 'wpbr_86681_manage_users_custom_column', 10, 3 );
Não se esqueça de alterar o valor de $custom_post_types
, ok? E também não se esqueça de voltar caso tenha mais alguma dúvida ou, se for o caso, para marcar seu tópico como “resolvido”.
Obrigado, Felipe! Esse seu código funcionou perfeitamente. Era o que eu precisava para o painel. Obrigado mesmo. 🙂
Aproveitando o seu conhecimento: você possui a função para exibir no site o número de posts criados por tal usuário? (O usuário só publica no “Custom Type)”.
Com o código padrão ele só exibe 0, pois puxa os Posts ao invés do Post Personalizado.
Que bom que funcionou!
Para exibir o número de posts criados você pode usar essa mesma função count_many_users_posts
que eu usei no código. É só passar o ID do usuário dentro de um array como primeiro parâmetro e o nome do CPT como segundo parâmetro.
Como sua dúvida foi respondida vou marcar o tópico como “resolvido”. Das próximas vezes você mesmo pode fazer isso, ok? Boa sorte!
Obrigado novamente, Felipe. Mas se puder me indicar o código, por favor, como insiro a função para puxar automaticamente o ID do usuário e o CPT. Testei com alguns, mas não consegui. 🙁 Será que é possível o WordPress identificar automaticamente o ID e CPT do usuário nesta página e gerar o número de posts? Será na página do autor (author.php). Obrigado.
Olá,
O ID do usuário na página do autor está disponível através da função get_queried_object_id()
. O nome do CPT você vai precisar saber, são os mesmos nomes que você substituiu no outro código que eu passei.
Deu tudo certo. Muito obrigado pela ajuda. 😀