it-swarm.com.de

Admin-Seitenumleitung

Ist es möglich, Benutzer auf eine Admin-Seite umzuleiten, wenn sie auf eine andere Admin-Seite zugreifen?

Zum Beispiel, wenn ein Benutzer jemals "alle Seiten" /wp-admin/edit.php?post_type=page trifft

sie würden umgeleitet, um "Neue Seite hinzufügen" /wp-admin/post-new.php?post_type=page

15
Shae
/**
 * Redirect admin pages.
 *
 * Redirect specific admin page to another specific admin page.
 *
 * @author Michael Ecklund
 *
 * @return void
 */
 function disallowed_admin_pages() {
    global $pagenow;

    # Check current admin page.
    if( $pagenow == 'edit.php' && isset( $_GET['post_type'] ) && $_GET['post_type'] == 'page' ){

        wp_redirect( admin_url( '/post-new.php?post_type=page' ), 301 );
        exit;

    }

}

Feuern Sie die obige Funktion am Hook admin_init ab.

add_action( 'admin_init', 'disallowed_admin_pages' );

17
Michael Ecklund

Michaels Lösung scheint für die Verwendung in einer Klasse gedacht zu sein. Für alle, die eine eigenständige Funktion benötigen, die direkt in functions.php funktioniert, enthält das folgende Beispiel eine Weiterleitung von customize.php zu einer Theme-Optionsseite und der von Michaels Originalfunktion .

function admin_redirects() {
    global $pagenow;

    /* Redirect Customizer to Theme options */
    if($pagenow == 'customize.php'){
        wp_redirect(admin_url('/admin.php?page=theme_options', 'http'), 301);
        exit;
    }

    /* OP's redirect from /wp-admin/edit.php?post_type=page */
    if($pagenow == 'edit.php' && isset($_GET['post_type']) && $_GET['post_type'] == 'page'){
        wp_redirect(admin_url('/post-new.php?post_type=page', 'http'), 301);
        exit;
    }
}

add_action('admin_init', 'admin_redirects');
3
user3245709

Ja, dies ist möglich, indem Sie ein action zu admin_init hinzufügen. An diesem Punkt können Sie die Anforderungs-URL überprüfen, um festzustellen, ob sie mit /wp-admin/edit.php?post_type=page übereinstimmt, und ob eine Weiterleitung zur Seite zum Hinzufügen von Beiträgen erfolgt: /wp-admin/post-new.php?post_type=page.

Auch das Plugin API und die Aktionsreferenz Seiten im WordPress Codex gehen detaillierter auf Aktionen und deren Funktionsweise ein.

0
ampt