So wie es ist, zeigt WordPress standardmäßig alle die Seiten/Beiträge in der Liste der Seiten/Beiträge im Admin-Bereich an, unabhängig von ihrem Veröffentlichungsstatus.
Ich habe viele Entwürfe, aber normalerweise bin ich viel mehr an der Bearbeitung der veröffentlichten Seiten/Beiträge interessiert. Um sie nur anzuzeigen, ist ein weiterer Klick und ein vollständiges Neuladen erforderlich.
Gibt es eine Möglichkeit, WordPress so einzustellen, dass zunächst nur veröffentlichte Beiträge/Seiten angezeigt werden und Sie später auf "Alle" oder "Entwurf" klicken können?
Ich bin mir nicht sicher, ob es einen anderen Weg gibt, aber das Manipulieren der globalen Variablen $submenu
kann dazu führen, dass dies funktioniert.
Das Folgende ist nur ein manueller Hack (ich kenne keinen Hook) und kann bei nicht standardmäßigen Untermenüs fehlschlagen. Der normale Post-Post-Typ hat eine eindeutige Adresse und der Rest der Typen hat eine andere, daher zwei 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;
}
}
}
}
Um veröffentlichte Seiten standardmäßig auf dem Seitenlink anzuzeigen, fügen Sie einfach diesen Code-Snippet in die Datei functions.php ein. Sie können dann die Registerkarte "Alle" aufrufen, um die vollständige Liste der Seiten anzuzeigen.
// 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' );
Wenn Sie dasselbe für den Post-Link im Admin-Dashboard erreichen möchten, verwenden Sie stattdessen das folgende Code-Snippet.
// 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' );
Referenz: http://www.wpcodesnippet.com/wordpress-admin/change-pages-link-display-published-pages/