在自定义帖子列表中添加自定义列

时间:2016-03-09 作者:Bhuvnesh Gupta

我想在我的自定义帖子(书籍)列表中有一列(例如发送电子邮件)。每一行都应该有一个按钮(发送),当我点击它时,我想发送一封电子邮件。

我看到的是一个钩子manage_posts_custom_column 添加自定义列,但此挂钩仅将post meta添加为特色图像等列。

如何做到这一点,请帮助我。


屏幕截图

enter image description here

1 个回复
最合适的回答,由SO网友:birgire 整理而成

将新列添加到books 在这里我们可以使用过滤器

manage_{$post->post_type}_posts_custom_column
manage_{$post->post_type}_posts_columns
或用于books 岗位类型:

manage_books_posts_custom_column
manage_books_posts_columns
下面是一个示例,我们可以为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( \'<input type="button" value="%s" />\', esc_attr( __( \'Send Email\' ) ) );

}, 10, 2 );
添加send_email 我们可以使用的列:

/**
 * 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;
} );
我们还可以通过以下方式限制列宽:

/**
 * Limit the \'send_email\' column width
 */
add_action( \'admin_print_styles-edit.php\', function()
{        
    echo \'<style> .column-send_email { width: 100px; }</style>\';
} );
以下是一个示例输出:

button

然后,您必须实现按钮的工作方式。

附言:我从我的回答中删除了第二部分,因为你问题的这一部分最好作为一个新的独立问题。

相关推荐

在管理员帖子wp-list-table之前/之后添加内容

我知道有两个钩子可以在分类法wp列表前后添加内容。是否有操作可在编辑上的post type wp list表格后添加内容。php页面?$taxonomy列表:add_action( \'category\' . \'_pre_add_form\', \'copy_above_form\' ); function copy_above_form( $taxonomy ) { echo \'<p>Above the WP-List-Table</p>\';&#x