it-swarm.com.de

Wie zeige ich standardmäßig nur veröffentlichte Beiträge/Seiten im Admin-Bereich an?

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?

9
yudayuda

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 foreachs.

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;
            }
        }   
    }
}
5
brasofilo

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/

2
bojan