Reindirizzamento Pagina Admin

14 mag 2012, 22:46:12
Visualizzazioni: 59K
Voti: 23

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

Per esempio, se un utente accede a "tutte le pagine" /wp-admin/edit.php?post_type=page

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

0
Tutte le risposte alla domanda 3
0
31
/**
 * Reindirizza le pagine di amministrazione.
 *
 * Reindirizza una specifica pagina di amministrazione a un'altra specifica pagina di amministrazione.
 *
 * @return void
 * @author Michael Ecklund
 *
 */
function disallowed_admin_pages() {

    global $pagenow;

    # Controlla la pagina di amministrazione corrente.
    if ( $pagenow == 'edit.php' && isset( $_GET['post_type'] ) && $_GET['post_type'] == 'page' ) {

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

    }

}

Esegui la funzione precedente sull'hook admin_init.

add_action( 'admin_init', 'disallowed_admin_pages' );

Sintassi alternativa:

/**
 * Reindirizza le pagine di amministrazione.
 *
 * Reindirizza una specifica pagina di amministrazione a un'altra specifica pagina di amministrazione.
 *
 * @return void
 * @author Michael Ecklund
 *
 */
add_action( 'admin_init', function () {

    global $pagenow;

    # Controlla la pagina di amministrazione corrente.
    if ( $pagenow == 'edit.php' && isset( $_GET['post_type'] ) && $_GET['post_type'] == 'page' ) {

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

    }

} );
19 feb 2013 18:01:31
0

La soluzione di Michael sembra essere pensata per l'uso all'interno di una classe, quindi per chi desidera una funzione autonoma che funzioni direttamente in functions.php, l'esempio seguente include un reindirizzamento da customize.php a una pagina di opzioni del tema e quello dalla funzione originale di Michael.

function admin_redirects() {
    global $pagenow;

    /* Reindirizza Customizer alle opzioni del tema */
    if($pagenow == 'customize.php'){
        wp_redirect(admin_url('/admin.php?page=theme_options', 'http'), 301);
        exit;
    }

    /* Reindirizzamento originale da /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');
13 gen 2016 12:34:59
0

Sì, è possibile aggiungere un'azione a admin_init, a quel punto puoi verificare l'URI della richiesta per vedere se corrisponde a /wp-admin/edit.php?post_type=page e, in caso affermativo, effettuare un reindirizzamento alla pagina di aggiunta articoli: /wp-admin/post-new.php?post_type=page.

Inoltre, le pagine Plugin API e riferimento alle azioni sul codex di WordPress entrano più nel dettaglio sulle azioni e su come funzionano.

15 mag 2012 09:15:10