WordPress – Customizando o componente list-table

Olá pessoal, tudo certo?
Ultimamente tenho desenvolvido diversos projetos, sendo 90% deles em WordPress, o que tem gerado um know-how bacana e gostaria de compartilhar o que venho aprendendo aqui com vocês!

Hoje vamos aprender como customizar o list-table do WP, pra quem não sabe, list table é o componente do WordPress que lista alguns campos dos seus posts nos post-types padrões e customizados, veja abaixo:

E digamos que agora você queira inserir uma nova coluna a ser exibida:
ID, por exemplo:

É muito simples e há várias maneiras de se executar esta funcionalidade, como descritas clicando aqui, mas neste caso utilizaremos o hook pertencente ao filtro “manage_edit-post_columns”, o bacana é que existem 3 variações para uso em casos específicos:

Para isso, utilizarei o filter referenciando a posts normais, chamando a seguinte função, que deverá ser inserida no arquivo “functions.php” do seu tema de uso:

Repare que o que realizei foi simplesmente inserir os campos padrões, e também o de minha escolha: “id”.
Existem casos para isto em que apenas se adiciona o que se deseja, sem reescrever todos, mas para que fique didático optei por reescrever e inserir de maneira que o entendimento seja o melhor possível.

Feito isso temos então um list-table customizado, mas e agora para trazer a informação desta coluna? E se quiser também inserir condicionais para estes dados e trabalhar diferentes informações? É tudo possível, vejamos a seguir!

Para isto, utilizarei a action “manage_posts_custom_column”, você encontra mais informações sobre estas e outras clicando aqui.
A função abaixo simplesmente verifica qual campo desejo tratar e exibe o resultado, para o exemplo estarei trazendo o valor de cada post (ID):

E o resultado:

Agora digamos que eu queira tratar este valor, sendo que quando for maior que 1000 ele me traga uma mensagem e menor, outra!

Basta inserir uma condicional com esta validação:

E o resultado será:

(Compare o resultado com os valores da última imagem)

Com isto fica muito melhor de inserir uma definição para seu cliente das melhores informações a serem visualizadas no list-table, seja na listagem de posts, páginas ou do seu post-type customizado!

Uma dica interessante é que se você utiliza o plugin Advanced Custom Fields, você pode trazer a informação de algum campo, basta chamar normalmente a função “get_field()”, e passando o segundo parâmetro: “$post->ID” pois como nesta função utilizamos a variável global $post, ele faz referência a mesma e traz todas suas dependências.

Vejam um exemplo abaixo, como se utilizássemos algum campo do plugin citado acima:

É isso pessoal, espero que utilizem, que seja de grande utilidade no projeto de vocês e havendo algum tipo de dúvida basta comentar abaixo ou entrarem em contato direto comigo!

Grande abraço!