Redirección de actualizaciones posteriores a la pantalla de publicaciones

2

Hay un gancho que puedo usar que cuando se crea o actualiza una publicación, vuelve a la página de lista / tabla de todas las publicaciones. Si también es posible apuntar a un tipo de publicación, también se podría descifrar.

Es una solicitud realmente tonta que conozco y he discutido sobre el tema, pero quería asegurarme de que fuera factible, aunque no muy fácil de usar.

Steve

    
pregunta user180386 22.11.2013 - 11:54

1 respuesta

6

Utilice el filtro redirect_post_location y la función admin_url() .

add_filter( 'redirect_post_location', 'wpse_124132_redirect_post_location' );
/**
 * Redirect to the edit.php on post save or publish.
 */
function wpse_124132_redirect_post_location( $location ) {

    if ( isset( $_POST['save'] ) || isset( $_POST['publish'] ) )
        return admin_url( "edit.php" );

    return $location;
}

Para redirigir a una url diferente, agrega todo después de la porción /wp-admin/ de la url. Utilicé "edit.php" porque la url deseada era: http://example.com/wordpress/wp-admin/edit.php .

El filtro redirect_post_location no está documentado en la Referencia del filtro del Codex . Puede encontrarlo en el archivo \wp-admin\post.php cerca de la línea 73. Este es el código de WordPress en la versión troncal de WordPress:

wp_redirect( apply_filters( 'redirect_post_location', $location, $post_id ) );

Como puede ver, también puede probar el redireccionamiento $post_id basado en el $post_id o cualquier información obtenida de él. Para usar este segundo parámetro del filtro, debe pasar los parámetros priority y _accepted_args_ en el llamada de filtro :

add_filter( 'redirect_post_location', 'wpse_124132_redirect_post_location', 10, 2 );

Y actualice los parámetros de la función:

/**
 * Redirect to the edit.php on post save or publish.
 */
function wpse_124132_redirect_post_location( $location, $post_id ) {

    if ( isset( $_POST['save'] ) || isset( $_POST['publish'] ) ) {
        // Maybe test $post_id to find some criteria.
        return admin_url( "edit.php" );
    }

    return $location;
}
    
respondido por el Charles Clarkson 22.11.2013 - 14:32

Lea otras preguntas en las etiquetas