Reindirizzamento pagina amministratore


18

È possibile reindirizzare gli utenti a una pagina di amministrazione se accedono a un'altra pagina di amministrazione?

Ad esempio, se un utente colpisce mai "tutte le pagine" /wp-admin/edit.php?post_type=page

verrebbero reindirizzati a "aggiungi nuova pagina" /wp-admin/post-new.php?post_type=page

Risposte:


24
/**
 * Redirect admin pages.
 *
 * Redirect specific admin page to another specific admin page.
 *
 * @return void
 * @author Michael Ecklund
 *
 */
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' ) );
        exit;

    }

}

Attiva la funzione sopra sul gancio admin_init.

add_action( 'admin_init', 'disallowed_admin_pages' );

Sintassi alternativa:

/**
 * Redirect admin pages.
 *
 * Redirect specific admin page to another specific admin page.
 *
 * @return void
 * @author Michael Ecklund
 *
 */
add_action( 'admin_init', function () {

    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' ) );
        exit;

    }

} );

3

La soluzione di Michael sembra essere pensata per l'uso all'interno di una classe, quindi per chiunque desideri una funzione autonoma che funzionerà direttamente in Functions.php, l'esempio seguente include un reindirizzamento da custom.php a una pagina di opzioni del tema e quello della funzione originale di Michael .

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');

0

Sì questo è possibile con l'aggiunta di un'azione a admin_init, a quel punto si potrebbe verificare l'URI di richiesta per vedere se corrisponde /wp-admin/edit.php?post_type=pagee se lo fa emettere un reindirizzamento alla pagina Posts: /wp-admin/post-new.php?post_type=page.

Anche l' API Plugin e le pagine di riferimento delle azioni sul codice WordPress approfondiscono le azioni e il loro funzionamento.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.