这个show_in_admin_all_list
中的参数register_post_status()
函数确定给定的post状态是否包含在post表格视图中。
最短的版本可能是:
add_action( \'init\', function() use ( &$wp_post_statuses )
{
$wp_post_statuses[\'draft\']->show_in_admin_all_list = false;
}, 1 );
但是,让我们避免像这样直接修改全局变量,并覆盖默认值
draft
状态为:
add_action( \'init\', function()
{
register_post_status( \'draft\',
[
\'label\' => _x( \'Draft\', \'post status\' ),
\'protected\' => true,
\'_builtin\' => true,
\'label_count\' => _n_noop( \'Draft <span class="count">(%s)</span>\', \'Drafts <span class="count">(%s)</span>\' ),
\'show_in_admin_all_list\' => false, // <-- we override this setting
]
);
}, 1 );
其中,我们使用优先级1,因为默认草稿状态注册为优先级0。
为了避免重复默认设置并支持将来可能的设置更改,我们可以使用get_post_status_object()
而是:
add_action( \'init\', function()
{
$a = get_object_vars( get_post_status_object( \'draft\' ) );
$a[\'show_in_admin_all_list\'] = false; // <-- we override this setting
register_post_status( \'draft\', $a );
}, 1 );