Wie werden standardmäßig nur veröffentlichte Beiträge / Seiten im Admin-Bereich angezeigt?

9

So wie es ist, zeigt WordPress standardmäßig alle Seiten / Beiträge in der Liste der Seiten / Beiträge im Administrationsbereich an, unabhängig von ihrem Veröffentlichungsstatus.

Ich habe viele Entwürfe, aber normalerweise bin ich viel mehr daran interessiert, die veröffentlichten Seiten / Beiträge zu bearbeiten. 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, sodass Sie später auf "Alle" oder "Entwurf" klicken können?

Yudayuda
quelle
Jemand? Vor kurzem wurde mir mehrmals gesagt, dass StackExchange der richtige Ort ist, wenn Sie schnelle Antworten zu WordPress erhalten möchten. Jede Antwort wäre willkommen - danke.
Yudayuda

Antworten:

5

Ich bin mir nicht sicher, ob es einen anderen Weg gibt, aber die Manipulation der globalen Variablen $submenukann dazu führen, dass dies funktioniert.

Das Folgende ist nur ein manueller Hack (mir ist kein Hook bekannt) und kann bei nicht standardmäßigen Untermenü-Setups fehlschlagen. Der reguläre 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;
            }
        }   
    }
}
brasofilo
quelle
2

Fügen Sie dieses Code-Snippet einfach in Ihre functions.php ein, um veröffentlichte Seiten standardmäßig auf dem Seitenlink anzuzeigen. Sie können dann die Registerkarte "Alle" besuchen, 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/

Bojan
quelle