Answers:
我不确定是否还有其他方法,但是操纵全局变量$submenu
可以使这项工作有效。
以下只是手动破解(我不知道有任何钩子),并且在非标准子菜单设置中可能会失败。常规Post post类型具有唯一的地址,其余类型具有另一个地址,因此为2 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;
}
}
}
}
要默认在页面链接上显示已发布的页面,只需将此代码段粘贴到您的functions.php中。然后,您可以访问“所有”标签以查看完整的页面列表。
// change page link to display published pages only
function wcs_change_admin_page_link() {
global $submenu;
$submenu['edit.php?post_type=page'][5][2] = 'edit.php?post_type=page&post_status=publish';
}
add_action( 'admin_menu', 'wcs_change_admin_page_link' );
如果您想在管理控制台中实现相同的帖子链接,请改用以下代码段。
// change post link to display published posts only
function wcs_change_admin_post_link() {
global $submenu;
$submenu['edit.php'][5][2] = 'edit.php?post_status=publish';
}
add_action( 'admin_menu', 'wcs_change_admin_post_link' );
参考:http : //www.wpcodesnippet.com/wordpress-admin/change-pages-link-display-published-pages/