Redirección de Página de Administración

14 may 2012, 22:46:12
Vistas: 59K
Votos: 23

¿Es posible redirigir usuarios a una página de administración si acceden a otra página de administración?

Por ejemplo, si un usuario accede a "todas las páginas" /wp-admin/edit.php?post_type=page

serían redirigidos a "añadir nueva página" /wp-admin/post-new.php?post_type=page

0
Todas las respuestas a la pregunta 3
0
31
/**
 * Redirigir páginas de administración.
 *
 * Redirige una página de administración específica a otra página de administración específica.
 *
 * @return void
 * @author Michael Ecklund
 *
 */
function disallowed_admin_pages() {

    global $pagenow;

    # Verificar la página de administración actual.
    if ( $pagenow == 'edit.php' && isset( $_GET['post_type'] ) && $_GET['post_type'] == 'page' ) {

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

    }

}

Ejecutar la función anterior en el hook admin_init.

add_action( 'admin_init', 'disallowed_admin_pages' );

Sintaxis alternativa:

/**
 * Redirigir páginas de administración.
 *
 * Redirige una página de administración específica a otra página de administración específica.
 *
 * @return void
 * @author Michael Ecklund
 *
 */
add_action( 'admin_init', function () {

    global $pagenow;

    # Verificar la página de administración actual.
    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 solución de Michael parece estar diseñada para usarse dentro de una clase, así que para aquellos que deseen una función independiente que funcione directamente en functions.php, el siguiente ejemplo incluye una redirección desde customize.php a una página de opciones del tema y la de la función original de Michael.

function admin_redirects() {
    global $pagenow;

    /* Redirigir el Personalizador a Opciones del tema */
    if($pagenow == 'customize.php'){
        wp_redirect(admin_url('/admin.php?page=theme_options', 'http'), 301);
        exit;
    }

    /* Redirección del OP desde /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 ene 2016 12:34:59
0

Sí, esto es posible añadiendo una acción a admin_init, en ese punto podrías verificar el URI de la solicitud para ver si coincide con /wp-admin/edit.php?post_type=page y si es así, redirigir a la página de añadir entradas: /wp-admin/post-new.php?post_type=page.

Además, las páginas de la API de Plugins y la referencia de acciones en el codex de WordPress entran en más detalle sobre las acciones y cómo funcionan.

15 may 2012 09:15:10