Personalizando as tabelas de administração do WordPress: modificações avançadas

Publicados: 2021-01-26

Em nosso primeiro artigo em nossa série sobre como personalizar as tabelas de administração do WordPress, vimos como aplicar algumas configurações básicas às nossas telas de administração de tipos de postagem, incluindo adicionar uma coluna personalizada e torná-la classificável.

Hoje daremos um passo adiante e veremos algumas modificações adicionais que podem ser aplicadas à tabela de administração da lista de postagens. Vamos indo!

Aprimorando a tabela de postagens do administrador do WordPress

Fornecer informações adicionais na tela da sua tabela de administração para seus usuários de back-end definitivamente melhorará sua experiência de fluxo de trabalho. Neste tutorial, visaremos melhorar os dados exibidos em nossa Tabela Post Admin, adicionando informações, modificando o conteúdo existente, reordenando colunas e até removendo colunas desnecessárias da tabela.

Exibir imagens em destaque

Seria muito útil adicionar uma miniatura em destaque à listagem de postagens da sua tabela de administração. Isso realmente aceleraria a capacidade de ver se uma postagem tem a imagem errada (ou talvez não tenha uma imagem) sem ter que abrir cada postagem individual.

Para conseguir isso, criaremos uma coluna de imagem em destaque para a página de nossa postagem de edição e a preencheremos com uma miniatura de imagem. Conforme mostrado em nosso artigo anterior, usaremos o manage_posts_columns . Se você ainda não leu este artigo, faça-o, pois ele inclui alguns dos códigos necessários para este tutorial.

Se você leu o artigo e o seguiu, você deve ter o seguinte código no arquivo functions.php do seu tema ativo. Se não, por favor, adicione-o!

 add_filter('manage_posts_columns','add_custom_columns'); function add_custom_columns( $columns ) { $columns['last_modified'] = 'Last modified'; return $columns; } add_action( 'manage_posts_custom_column','custom_columns_content', 10, 2 ); function custom_columns_content ( $column_id, $post_id ) { switch( $column_id ) { case 'last_modified': echo get_post_field('post_modified', $post_id); break; } }

Para mostrar a imagem em destaque em nossa tabela de administração, precisamos editar este código da seguinte forma:

 add_filter('manage_posts_columns','add_custom_columns'); function add_custom_columns( $columns ) { $columns['last_modified'] = 'Last modified'; $columns['my_post_thumbs'] = 'Thumbs'; return $columns; } add_action( 'manage_posts_custom_column','custom_columns_content', 10, 2 ); function custom_columns_content ( $column_id, $post_id ) { switch( $column_id ) { case 'last_modified': echo get_post_field('post_modified', $post_id); break; case 'my_post_thumbs': echo the_post_thumbnail( 'thumbnail' ); break; } }

Os números, 10 e 2 no terceiro e quarto argumentos, ditam a prioridade na qual serão processadas as funções associadas a esta ação. Esses argumentos serão passados ​​para nossa função custom_columns_content .

O padrão para a prioridade é 10. O número 2 mostra a quantidade de argumentos da função. Portanto, no nosso caso, é importante incluir esses números, pois temos 2 argumentos, a saber, $column_id e $post_id .

Agora, com este código salvo, vamos ver o que temos em nossa tela de posts administrativos.

Imagens em destaque da tabela de administração do WordPress

Como você pode ver, agora temos uma coluna 'Última modificação' e nossa nova coluna 'Polegares'.

Alterar rótulos de coluna

Supondo que queremos, por algum motivo, alterar o rótulo de uma coluna, por exemplo, renomeie a coluna 'Autor' para 'Escritor'. Para fazer isso, podemos simplesmente definir o novo rótulo da mesma forma que adicionamos nossa coluna personalizada. Mais uma vez, para manter nosso código mais distinto, separaremos os trechos de código de renomeação usando uma função diferente.

 add_filter('manage_posts_columns','rename_columns'); function rename_columns( $columns ) { $columns['author'] = 'Writer'; return $columns; }

É claro que você pode alterar o rótulo de várias colunas no mesmo snippet de código apenas adicionando $columns['COLUMN_ID'] = 'NEW_LABEL'; logo antes return $columns;

Aprimore a tabela de páginas de administração do WordPress

Você pode não estar ciente disso, mas as páginas do WordPress são um tipo de postagem hierárquica, o que significa que cada página pode ter uma página pai.

Pode ser muito útil ver rapidamente qual página é a página pai de qualquer página filha. Vamos dar uma olhada em como fazer isso.

Adicionar uma coluna personalizada que exiba a postagem pai

Primeiro, criei algumas páginas pai e filho com algumas imagens em destaque associadas.

Postagens pai e filho da tabela de administração do WordPress

Em seguida, colocaremos algum código em nosso arquivo functions.php . Vamos seguir o mesmo processo que fizemos com o tipo Posts em relação à adição do que chamaremos de coluna 'Ancestral'.

 add_filter('manage_pages_columns','add_ancestor_column'); function add_ancestor_column( $columns ) { $columns['ancestor'] = 'Ancestor'; return $columns; }

O mesmo vale para colocar a coluna na posição desejada na tabela. Reordenaremos as colunas da tabela para que a coluna 'Ancestral' venha antes da coluna Author.

 add_filter('manage_pages_columns', 'change_ancestor_column_position'); function change_ancestor_column_position($columns) { $n_columns = array(); foreach($columns as $key => $value) { if ($key=='author'){ $n_columns['ancestor'] = 'ancestor'; } $n_columns[$key] = $value; } return $n_columns; }

Neste ponto, na tela de administração do seu Pages, você deve ver algo assim:

A última coisa que temos que fazer é preencher a coluna 'Ancestral' com o conteúdo certo. Como estamos trabalhando com um tipo de postagem hierárquico desta vez, usaremos um gancho diferente para obter o conteúdo da coluna. Tente inserir este pedaço de código e verifique o resultado.

 add_action( 'manage_pages_custom_column','ancestor_column_content', 10, 2 ); function ancestor_column_content ( $column_id, $post_id ) { switch( $column_id ) { case 'ancestor': $ancestors = get_ancestors($post_id, 'subject', 'post_type'); $post_ancestor = end($ancestors); if ($post_ancestor != 0) { echo '<a href="' . get_edit_post_link($post_ancestor) . '">' . get_the_title($post_ancestor) . '</a>'; } else { echo '-'; } break; } }

Agora você deve ver a página Pai associada ao lado de suas páginas filhas listadas na coluna 'Ancestral'.

Isso é particularmente útil se e quando a ordem de suas páginas na Tabela de administração for interrompida (por exemplo, porque elas são classificadas por data de publicação etc.) e, portanto, as páginas filhas não aparecem mais sob suas respectivas páginas pai.

Alterando as colunas padrão

Há várias coisas que podem ser feitas para melhorar as colunas padrão da tabela Admin. Vamos dar uma olhada em alguns deles.

Reordenando Colunas

Em nosso artigo anterior sobre como personalizar as tabelas de administração, adicionamos uma nova coluna que exibe a data em que a postagem foi modificada pela última vez. Mas e se quisermos mudar sua posição na ordem das colunas?

Felizmente, isso é muito fácil e pode ser implementado usando o gancho manage_posts_columns .

O que deve ser definido é a coluna que precisa ser movida e a coluna imediatamente anterior a onde queremos colocar nossa coluna. Portanto, se, por exemplo, quisermos a imagem do recurso como primeira coluna da tabela, teremos que movê-la antes da coluna do título. O código de peça correspondente deve ser assim:

 add_filter('manage_posts_columns', 'change_column_order'); function change_column_order($columns) { $n_columns = array(); $move = 'author'; // what to move $before = 'title'; // move before this foreach($columns as $key => $value) { if ($key==$before){ $n_columns[$move] = $move; } $n_columns[$key] = $value; } return $n_columns; }

E voilá!

adicione imagens em destaque às suas tabelas de administração do WordPress

Removendo uma coluna

Ocasionalmente, algumas colunas da tabela de listagem de postagens não são particularmente úteis e seria melhor se fossem removidas para liberar algum espaço. Um candidato comum para isso é a coluna de comentários.

Felizmente é muito fácil remover uma coluna da nossa tabela. Nós apenas temos que adicionar unset($columns['comments']); na função do gancho manage_posts_columns . Embora isso possa ser adicionado ao nosso código existente, é mais simples se pudermos separar isso em seu próprio trecho de código, pois ele tem um propósito diferente e introduz uma nova função no gancho.

 add_filter('manage_posts_columns' , 'remove_columns'); function remove_columns($columns) { unset($columns['comments']); return $columns; }

E é isso. Atualize sua tela de administração e você verá que a coluna Comentários desapareceu.

Observação: se você não tiver certeza de qual é o ID de uma coluna, poderá detectá-lo usando o console do inspetor do seu navegador.

O plug-in de colunas do administrador

Se você não deseja codificar alterações em suas tabelas de administração do WordPress, não tenha medo… como este é o WordPress, existe um plugin que permite fazer várias atualizações sem precisar tocar em uma linha de código. Chama-se Colunas Admin.

Nota: Antes de prosseguir com a instalação/ativação do plugin, é melhor reverter todas as personalizações na tabela de lista de posts (se você tiver feito alguma) e começar a usar o plugin com a tabela de posts do administrador em seu estado inicial.

Depois de baixar e instalar o plug-in, vá para o item de menu Configurações> Colunas de administrador. A partir daqui, você pode selecionar a tabela de lista de postagens (ou qualquer outro tipo de postagem em que deseja editar sua tabela de administração) na lista suspensa. Em seguida, você verá a estrutura da tabela atual.

Agora, usando uma interface de arrastar e soltar, você pode reordenar facilmente as colunas. Você também pode editar a etiqueta de tipo e a largura usando o ícone de seta para visualizar sua configuração.

E, sim, você pode até adicionar suas próprias colunas usando o botão 'Adicionar Coluna' no canto inferior direito!

O que o plugin realmente faz aqui é reunir todas as opções disponíveis nas tabelas do banco de dados relacionadas ao tipo de Posts e fornecer a elas o menu suspenso Tipo. Portanto, se, por exemplo, você deseja adicionar uma coluna 'Última Modificação' como fizemos antes, basta localizá-la e selecioná-la na lista Tipo e, em seguida, fornecer o rótulo e a largura desejada.

Depois disso, você pode alterar as opções de Formato de data que aparecerão, se desejar.

Conclusão

Ter as informações certas em suas tabelas de administração do WordPress pode realmente acelerar seu fluxo de trabalho e ajudar a evitar erros em seu site. Por exemplo, é muito menos provável que você publique uma postagem conscientemente sem uma imagem em destaque quando puder ver todas as suas postagens e suas imagens em destaque associadas rapidamente na tabela Post Admin. Divirta-se e configure suas tabelas de administração para se adequar a você e ao seu fluxo de trabalho.