¿Cómo mostrar el formulario de registro de usuario de WordPress (el formulario que aparece en la página "www.mywebsite.com/wp-register.php") en la parte frontal de mi blog?
He personalizado el formulario de registro. Pero no sé cómo llamar a ese formulario en la página de inicio. Cualquier apoyo será de gran ayuda.
Gracias por adelantado. :)
registration
forms
bueltge
fuente
fuente
Respuestas:
El proceso implica 2 pasos:
Hay 3 enfoques diferentes que se me ocurren para mostrar la interfaz:
Para esta respuesta, usaré la última. Los motivos son:
1: Construye la url
Todos sabemos que el formulario de registro predeterminado de un sitio de WordPress es a menudo un objetivo para los spammers. Usar una URL personalizada es una ayuda para resolver este problema. Además, también quiero usar una URL variable , es decir, la url del formulario de registro no debe ser siempre la misma, esto hace que la vida de los spammers sea más difícil. El truco se hace usando un nonce en la url:
El uso de estas funciones es fácil de mostrar en las plantillas un enlace al formulario de registro, incluso si es dinámico.
2: Reconocer la url, primer trozo de
Custom_Reg\Custom_Reg
claseAhora necesitamos reconocer la url. Para el propósito, comenzaré a escribir una clase, que se terminará más adelante en la respuesta:
La función mira la primera parte de la url después
home_url()
, y si coincide con nuestro nonce, devuelve TRUE. Esta función se utilizará para verificar nuestra solicitud y realizar las acciones necesarias para mostrar nuestro formulario.3: la
Custom_Reg\Form
claseAhora escribiré una clase, que será responsable de generar el marcado del formulario. Lo usaré también para almacenar en una propiedad la ruta del archivo de plantilla que se debe usar para mostrar el formulario.
La clase genera un marcado de formulario que recorre todos los campos con un
create
método de llamada agregado en cada uno de ellos. Cada campo debe ser instancia deCustom_Reg\FieldInterface
. Se agrega un campo oculto adicional para la no verificación. El método de formulario es 'POST' de forma predeterminada, pero se puede establecer en 'GET' usando elsetVerb
método. Una vez creado, el marcado se guarda dentro de la$form
propiedad del objeto que se repite poroutput()
método, enganchado en el'custom_registration_form'
gancho: en la plantilla de formulario, simplemente la llamadado_action( 'custom_registration_form' )
generará el formulario.4: la plantilla predeterminada
Como dije, la plantilla para el formulario se puede anular fácilmente, sin embargo, necesitamos una plantilla básica como respaldo. Escribiré aquí una plantilla muy aproximada, más una prueba de concepto que una plantilla real.
5: la
Custom_Reg\FieldInterface
interfazCada campo debe ser un objeto que implemente la siguiente interfaz
Creo que los comentarios explican qué deberían hacer las clases que implementan esta interfaz.
6: Agregar algunos campos
Ahora necesitamos algunos campos. Podemos crear un archivo llamado 'fields.php' donde definimos las clases de campos:
Utilicé una clase base para definir la implementación predeterminada de la interfaz, sin embargo, uno puede agregar campos muy personalizados implementando directamente la interfaz o extendiendo la clase base y anulando algunos métodos.
En este punto tenemos todo para mostrar el formulario, ahora necesitamos algo para validar y guardar los campos.
7: la
Custom_Reg\Saver
claseEsa clase tiene 2 métodos principales, uno (
validate
) que repite los campos, los valida y guarda buenos datos en una matriz, el segundo (save
) guarda todos los datos en la base de datos y envía la contraseña por correo electrónico al nuevo usuario.8: Usar clases definidas: terminar la
Custom_Reg
claseAhora podemos volver a trabajar en
Custom_Reg
clase, agregando los métodos que "pegan" el objeto definido y los hacen funcionarEl constructor de la clase acepta una instancia de
Form
y una deSaver
.init()
El método (usandocheckUrl()
) mira la primera parte de la url despuéshome_url()
, y si coincide con el nonce correcto, verifica si el formulario ya se envió, si es así, usando elSaver
objeto, valida y guarda los datos de usuario, de lo contrario simplemente imprima el formulario .init()
El método también activa el gancho de acción que'custom_reg_form_init'
pasa la instancia del formulario como argumento: este gancho se debe usar para agregar campos, configurar la plantilla personalizada y también para personalizar el método del formulario.9: poner las cosas juntas
Ahora tenemos que escribir el archivo de complemento principal, donde podamos
Custom_Reg
clase de instanciación y uninit()
método de llamada utilizando un enlace razonablemente tempranoAsi que:
10: tareas faltantes
Ahora todo está bastante hecho. Solo tenemos que personalizar la plantilla, probablemente agregando un archivo de plantilla personalizado en nuestro tema.
Podemos agregar estilos y scripts específicos solo a la página de registro personalizada de esta manera
Usando ese método podemos poner en cola algunos scripts js para manejar la validación del lado del cliente, por ejemplo, este . El marcado necesario para que el script funcione puede manejarse fácilmente editando la
Custom_Reg\BaseField
clase.Si queremos personalizar el correo electrónico de registro, podemos usar el método estándar y tener datos personalizados guardados en meta, podemos usarlos en el correo electrónico.
La última tarea que probablemente queremos implementar es evitar la solicitud del formulario de registro predeterminado, tan fácil como:
Todos los archivos se pueden encontrar en un Gist aquí .
fuente
TLDR; Ponga el siguiente formulario en su tema, los atributos
name
yid
son importantes:Encontré un excelente artículo de Tutsplus sobre Cómo crear un elegante formulario de registro de Wordpress desde cero . Esto pasa mucho tiempo en diseñar el formulario, pero tiene la siguiente sección bastante simple sobre el código de WordPress requerido:
Editar: agregué el bit final adicional del artículo para explicar dónde colocar los fragmentos de código anteriores, es solo un formulario para que pueda ir en cualquier plantilla de página o barra lateral o hacer un código corto. La sección importante es la
form
que contiene los fragmentos anteriores y los campos obligatorios importantes.fuente
wp-login.php?action=register
páginaEste artículo proporciona un excelente tutorial sobre cómo crear sus propios formularios de registro / inicio de sesión / restauración de la interfaz de usuario.
o si está buscando un complemento, los he usado antes y puedo recomendarlos:
fuente
Hice un sitio web hace algún tiempo que mostraba un formulario de registro personalizado en el lado frontal. Este sitio web ya no está disponible, pero aquí hay algunas capturas de pantalla.
Aquí están los pasos que he seguido:
1) Active la posibilidad de que todos los visitantes soliciten una nueva cuenta a través de la opción Configuración> General> Membresía. La página de registro ahora aparece en la URL /wp-login.php?action=register
2) Personalice el formulario de registro para que se vea como el front-end de su sitio. Esto es más complicado y depende del tema que esté utilizando.
Aquí hay un ejemplo con veintitrés:
Luego, modifique la hoja de estilo del tema para que el formulario aparezca como desee.
3) Puede modificar aún más el formulario ajustando los mensajes mostrados:
4) Si necesita un formulario de registro front-end, probablemente no querrá que los usuarios registrados vean el backend cuando inicien sesión.
Hay muchos pasos, ¡pero el resultado está aquí!
fuente
Mucho más fácil: use una función de WordPress llamada
wp_login_form()
( página del Codex aquí ).Puede crear su propio complemento para que pueda usar un shortcode en sus páginas:
Todo lo que tiene que hacer es diseñar su formulario en la interfaz.
fuente
Si está abierto al uso de complementos, he usado el complemento de registro de usuario para Gravity Forms anteriormente, funcionó muy bien:
http://www.gravityforms.com/add-ons/user-registration/
Editar: me doy cuenta de que esta no es una solución muy detallada, pero hace exactamente lo que necesita y es una buena solución.
Editar: para ampliar aún más mi respuesta, el complemento Registro de usuario para formularios de gravedad le permite asignar cualquier campo de un formulario creado usando Gravity Forms a campos específicos del usuario. Por ejemplo, puede crear un formulario con Nombre, Apellido, Correo electrónico, Sitio web, Contraseña. Tras el envío, el complemento asignará esas entradas a los campos de usuario relevantes.
Otra gran cosa al respecto es que puede agregar a cualquier usuario registrado en una cola de aprobación. Sus cuentas de usuario solo se crearían una vez aprobadas en el backend por un administrador.
Si el enlace anterior se rompe, simplemente agregue "Registro de usuario de Google para los formularios de gravedad"
fuente