plugin personalizados pagina insertar inscripcion formularios formulario formato form ejemplos crear contacto configurar como colocar php redirect wordpress-plugin

php - personalizados - formulario de contacto wordpress sin plugin



¿Cómo redirigir a una página de administración diferente en Wordpress? (7)

Estoy escribiendo un plugin de Wordpress.

Deseo realizar una redirección (después de crear registros de base de datos de POST, etc.) a otra página de ADMIN.

Ni el encabezado ("Ubicación: ...) ni el trabajo wp_redirect () - obtengo

Advertencia: No se puede modificar la información del encabezado: los encabezados ya enviados por

que proviene de una razón obvia.

¿Cómo realizo correctamente una redirección en Wordpress?


Creo que lo estaba haciendo de la manera incorrecta.

Mi código estaba dentro de una add_menu_page () dentro de la llamada add_action (''admin_menu'', ...)

que probablemente se llame más tarde durante la solicitud (después de que se haya creado y mostrado el encabezado de la página).

Moviendo mi código fuera de mis manejadores de complementos, en el alcance principal funcionó: necesita algunas tareas de limpieza y correcciones, pero la redirección funciona.

De todos modos, gracias por las respuestas.


Debe asegurarse de que no se envíe nada a la salida http antes de que se produzca la redirección.

Puede establecer "window.location (''newlocation'');" y eso aún te permitirá redirigir después de que la salida se haya enviado al navegador.


Supongo que solo debes asegurarte de que wp_redirect () llegue antes de que se haya enviado alguna salida.


Carguelo en template_redirect.

add_action(''template_redirect'', ''myplugin_template_redirect''); function myplugin_template_redirect() { wp_redirect(''http://www.example.com/'', 301); }


Si aún desea redirigir desde la página de administración de su complemento a otra página de administración mientras utiliza las funciones de WP add_page *, luego de procesar su solicitud, puede repetir algo como esto:

<script type="text/javascript"> window.location = ''/whatever_page.php''; </script>

Esto simplemente genera una redirección basada en javascript a "/whatever_page.php", lo que garantiza que no haya problemas con los encabezados enviados por WP como ya dijo Chris Ballance.

Cambia "/whatever_page.php" a algo así como "/wp-admin/admin.php?page=whatever_page"


En su acción de formulario, agregue ''noheader = true'' a la URL de acción. Esto evitará que se generen los encabezados para el área de administración antes de su redirección. Por ejemplo:

<form name="post" action="<?php echo admin_url(''admin.php?page=your-admin-page&noheader=true''); ?>" method="post" id="post">


Para un enlace agregado con add_submenu_page (o función relacionada), use $ hook_suffix devuelto para agregar una acción a "load- $ hook_suffix" y haga el redireccionamiento allí. Así es como se conecta a la carga de la página antes de que la salida haya comenzado.