Redirecționare Pagină de Administrare

14 mai 2012, 22:46:12
Vizualizări: 59K
Voturi: 23

Este posibil să redirecționezi utilizatorii către o pagină de administrare dacă aceștia accesează o altă pagină de administrare?

De exemplu, dacă un utilizator accesează vreodată "toate paginile" /wp-admin/edit.php?post_type=page

ar fi redirecționat către "adaugă pagină nouă" /wp-admin/post-new.php?post_type=page

0
Toate răspunsurile la întrebare 3
0
31
/**
 * Redirecționează paginile de administrare.
 *
 * Redirecționează o anumită pagină de administrare către altă pagină specifică.
 *
 * @return void
 * @author Michael Ecklund
 *
 */
function disallowed_admin_pages() {

    global $pagenow;

    # Verifică pagina curentă de administrare.
    if ( $pagenow == 'edit.php' && isset( $_GET['post_type'] ) && $_GET['post_type'] == 'page' ) {

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

    }

}

Execută funcția de mai sus pe hook-ul admin_init.

add_action( 'admin_init', 'disallowed_admin_pages' );

Sintaxă alternativă:

/**
 * Redirecționează paginile de administrare.
 *
 * Redirecționează o anumită pagină de administrare către altă pagină specifică.
 *
 * @return void
 * @author Michael Ecklund
 *
 */
add_action( 'admin_init', function () {

    global $pagenow;

    # Verifică pagina curentă de administrare.
    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

Soluția lui Michael pare să fie destinată pentru utilizarea într-o clasă, așa că pentru cei care doresc o funcție independentă care să funcționeze direct în functions.php, exemplul de mai jos include o redirecționare de la customize.php către o pagină de opțiuni pentru temă și cea din funcția originală a lui Michael.

function admin_redirects() {
    global $pagenow;

    /* Redirecționează Customizer către Opțiunile temei */
    if($pagenow == 'customize.php'){
        wp_redirect(admin_url('/admin.php?page=theme_options', 'http'), 301);
        exit;
    }

    /* Redirecționarea OP de la /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 ian. 2016 12:34:59
0

Da, acest lucru este posibil prin adăugarea unei acțiuni la admin_init, în acel moment puteți verifica URI-ul cererii pentru a vedea dacă se potrivește cu /wp-admin/edit.php?post_type=page și dacă se potrivește, puteți iniția o redirecționare către pagina de adăugare articole: /wp-admin/post-new.php?post_type=page.

De asemenea, paginile API Plugin și referința acțiunilor din codex-ul WordPress oferă mai multe detalii despre acțiuni și modul în care funcționează.

15 mai 2012 09:15:10