Adicionar coluna personalizada na lista de postagens personalizadas

Eu quero ter uma coluna (por exemplo, Enviar e-mail) na minha lista de postagens personalizadas (livros). Em cada linha deve haver um botão (Enviar) e quando eu clicar nele, eu quero enviar um e-mail.

Eu vi um gancho manage_posts_custom_column para adicionar uma coluna personalizada, mas esse gancho adiciona apenas meta meta como colunas, como a imagem em destaque, etc.

Como fazer isso, ajude-me.


Captura de canvas

insira a descrição da imagem aqui

Solutions Collecting From Web of "Adicionar coluna personalizada na lista de postagens personalizadas"

Adicionando uma nova coluna aos books Post Table

Aqui podemos usar os filtros

 manage_{$post->post_type}_posts_custom_column manage_{$post->post_type}_posts_columns 

ou para o tipo de publicação de books :

 manage_books_posts_custom_column manage_books_posts_columns 

Aqui está um exemplo de como poderíamos exibir um botão, para cada linha na coluna send_email :

 /** * Books Post Table: Display a utton in each row in the 'send_email' column */ add_action( 'manage_books_posts_custom_column', function ( $column_name, $post_id ) { if ( $column_name == 'send_email') printf( '', esc_attr( __( 'Send Email' ) ) ); }, 10, 2 ); 

Para adicionar a coluna send_email podemos usar:

 /** * Books Post Table: Add the 'send_email' column */ add_filter('manage_books_posts_columns', function ( $columns ) { if( is_array( $columns ) && ! isset( $columns['send_email'] ) ) $columns['send_email'] = __( 'Send Email' ); return $columns; } ); 

Podemos também limitar a largura da coluna com:

 /** * Limit the 'send_email' column width */ add_action( 'admin_print_styles-edit.php', function() { echo ''; } ); 

Aqui está um exemplo de saída:

botão

Você terá que implementar como o botão funcionará.

ps: Retirei a segunda parte da minha resposta, pois a parte da sua pergunta seria melhor servida como uma nova questão separada.