我不确定是否还有其他方法,但是操纵全局变量$submenu
可以使这项工作。
以下只是一个手动破解(我不知道有任何挂钩),在非标准子菜单设置上可能会失败。常规Post Post类型有一个唯一的地址,其余类型有另一个地址,因此有两个foreach
s
add_action( \'admin_menu\', \'default_published_wpse_91299\' );
function default_published_wpse_91299()
{
global $submenu;
// POSTS
foreach( $submenu[\'edit.php\'] as $key => $value )
{
if( in_array( \'edit.php\', $value ) )
{
$submenu[\'edit.php\'][ $key ][2] = \'edit.php?post_status=publish&post_type=post\';
}
}
// OTHER POST TYPES
$cpt = array( \'page\', \'portfolio\' ); // <--- remove or adapt the portfolio post type
foreach( $cpt as $pt )
{
foreach( $submenu[ \'edit.php?post_type=\' . $pt ] as $key => $value )
{
if( in_array( \'edit.php?post_type=\' . $pt, $value ) )
{
$submenu[ \'edit.php?post_type=\'.$pt ][ $key ][2] = \'edit.php?post_status=publish&post_type=\' . $pt;
}
}
}
}