Colunas personalizadas com WordPress
Introdução
O desejo de boa parte dos iniciantes é personalizar o painel administrativo do WordPress criando recursos específicos quase sempre requisitado por clientes. Corriqueiramente utilizo plugins para intervir em minhas aplicações, pois se o cliente estiver utilizando temas atualizáveis você poderá perder todas as modificações que realizar quando o mesmo atualizar, criando um plugin você deixa a aplicação totalmente independente. Para realizar esta operação aconselho que já esteja familiarizado a trabalhar com classes, métodos e os métodos a seguir:
Requisitos Mínimos
- register_post_type()
- register_taxonomy()
- add_meta_box()
Alterando Cabeçalho das Colunas
A intervenção necessária será manage_edit-{custom_post}_columns, onde {custom_post} será o nome do post personalizado que você criou, caso você esteja aplicando a todos os pots de seu WordPress basta declarar manage_edit-post_columns, mas provavelmente você deseja aplicar apenas a um post personalizado que você tenha criado o que é o mais indicado.
Chamando a intervenção:
class NewCustomClass { public function __construct() { add_filter('manage_edit-{$custom_post}_columns', array($this, 'add_new_{custom_method}_columns')); } //Demais métodos como register_post_type public function add_new_{custom_method}_columns($columns){ //$columns Não utilizaremos as colunas já existentes, todas as colunas serão personalizadas $new_columns['cb'] = '<input type="checkbox" />'; //Caixa de seleção não pode faltar. $new_columns['custom_nome'] = __('Name', 'translate-plugin'); //String que aparecerá no título da coluna $new_columns['custom_cpf'] = __('CPF', 'translate-plugin'); return $new_columns; //retornamos as colunas criadas. } }
Com este método já é possível altera o cabeçalho de nossas colunas.
Alterando conteúdo das colunas:
Agora vamos utilizar o método manage_{$post_type}_posts_custom_column
class NewCustomClass { public function __construct() { add_filter('manage_edit-{custom_post}_columns', array($this, 'add_new_{custom_method}_columns')); add_action('manage_certificate_posts_custom_column', array($this, 'add_new_certificate_columns_value'), 10, 2); } //Demais métodos como register_post_type public function add_new_{custom_method}_columns($columns){ //$columns Não utilizaremos as colunas já existentes, todas as colunas serão personalizadas $new_columns['cb'] = '<input type="checkbox" />'; //Caixa de seleção não pode faltar. $new_columns['custom_nome'] = __('Name', 'translate-plugin'); //String que aparecerá no título da coluna $new_columns['custom_cpf'] = __('CPF', 'translate-plugin'); return $new_columns; //retornamos as colunas criadas. } }