这个问题是后续问题on that answer I wrote.
假设我想在Posts类型列表表的快速编辑框中添加一些内容。为此,我必须添加一个自定义列,因为class-wp-posts-list-table.php
核心文件:
foreach ( $columns as $column_name => $column_display_name ) {
if ( isset( $core_columns[$column_name] ) )
continue;
do_action( $bulk ? \'bulk_edit_custom_box\' : \'quick_edit_custom_box\', $column_name, $screen->post_type );
}
如您所见,如果没有注册自定义列,则不会触发自定义快速/批量编辑字段的过滤器。现在
this,
this 和
this 答案建议只添加或添加然后删除一个虚拟自定义列。
因此,我添加了一个虚拟自定义列:
$pt = \'post\';
add_filter( "manage_{$pt}_posts_columns", array( $this, \'addColDummy\' ) );
# add_action( "manage_{$pt}_posts_custom_column", array( $this, \'removeColDummy\' ), 10, 2 );
# add_filter( "manage_edit-{$pt}_columns", array( $this, \'remove\' ) );
现在的问题是:如果我从上述两个过滤器中的一个中再次删除自定义列,则不会再触发自定义代码
问题:如何在不删除自定义快速编辑内容的情况下删除虚拟列?