¿Cómo integrar un formulario de registro usando un shortcode en WordPress?
Aprender a crear funcionalidades personalizadas en WordPress abre un mundo de posibilidades para cualquier desarrollador web. En esta guía, exploraremos cómo integrar un formulario de registro usando un shortcode, una técnica poderosa y flexible en el entorno de WordPress. Aquí te mostramos el paso a paso para implementar esta funcionalidad en tu sitio.
¿Cuál es la estructura básica de archivos?
En primer lugar, es esencial contar con una estructura clara de carpetas. Partimos de una base en Visual Studio Code, donde tenemos una carpeta llamada Shortcodes para incluir el archivo del formulario de registro. Nombrarlo de forma descriptiva, como formRegistro.php, facilita la identificación y gestión del proyecto a largo plazo.
<?phpfunctionpzAtRegisterForm(){$response='';// Código HTML con comillas simples para evitar errores$response.='<div></div>';// Elemento placeholder// Addición de atributos Name para los inputs para uso de JavaScript$response.='<input type="text" name="Name">';$response.='<input type="email" name="Email">';$response.='<input type="password" name="Password">';return$response;}
¿Cómo se crea un shortcode en WordPress?
La creación de un shortcode permite insertar HTML de manera dinámica y modular dentro de cualquier parte de nuestro sitio. Aquí se utiliza la función add_shortcode de WordPress, que mapea el shortcode al código PHP.
add_shortcode('pz_registro','pzAtRegisterForm');
El primer argumento de add_shortcode es el nombre que usaremos en el editor de WordPress, mientras que el segundo es el nombre de la función que define el contenido del shortcode.
¿Qué hace la función require_once y cómo se utiliza?
Para que nuestro shortcode esté disponible, WordPress necesita acceder al archivo de forma segura. La función require_once de PHP exige la inclusión del archivo solo si no ha sido cargado anteriormente, previniendo errores en ejecución.
El método plugin_dir_path devuelve la ruta completa al directorio del plugin, asegurando que WordPress siempre localice correctamente el archivo de funciones.
¿Cómo se prueba el shortcode en WordPress?
El shortcode puede ser probado directamente desde el administrador de WordPress. Aquí, creamos una nueva página y utilizamos un bloque de gutenberg llamado "shortcode". Dentro de este, colocamos nuestro shortcode en corchetes:
[ plz-registro /]
Antes de poder ver el formulario aparece, asegúrate de que el plugin está activado desde la sección de plugins del administrador. Si está desactivado, las funcionalidades no se cargarán.
Consejos para el desarrollo continuo
Prueba y depuración: Al activar el plugin, verifica que no existan errores que impidan que se renderice correctamente el formulario. Esto se puede hacer revisando la consola del navegador o el registro de errores de PHP.
Usabilidad en JavaScript: Al añadir atributos name a los input, aseguramos la interacción futura con JavaScript para validaciones o envíos asíncronos de formulario.
Seguridad y prefijos: Usa siempre prefijos únicos en tu código para evitar conflictos con otros plugins o temas que puedan usar funciones similares, un estándar en el desarrollo de WordPress.
Este enfoque no solo facilita la gestión de funcionalidades personalizadas, sino que también fomenta un código limpio y estructurado. Sigue explorando y experimentando con shortcodes para aprovechar al máximo tu conocimiento en WordPress. ¡Tu próximo desafío es desarrollar el formulario de inicio de sesión con la misma metodología aprendida aquí!
Yo llevo rato aprendiendo wordpress y encontré esta herramienta para trabajar con plugins con el paradigma OOP (Oriented object programing)
Wordpress plugin voilerplate
Genera la misma estructura de carpetas del profe pero se trabaja con clases y modificadores de acceso. Está super chévere la verdad, ahora, les comparto mi estructura:
Esta estructura muy similar a la del profe en el directorio public/
.
En dme-login.php (archivo donde voy a generar el shortcode) agregué una condicional que asegura la integridad de nuestro sitio en wordpress la cual es una buena práctica que recomiendan para desarrollos y evitar que el sitio encuentre un error fatal por funciones con nombres ya existentes.
Nota
Les dejo la documentación oficial por si quieren saber más sobre el hook plugin_dir_path , pero en resumen lo que hago acá es obtener el path del directorio en el archivo en el cual me encuentro.
.
.
Este es mi resultado:
Espero les sirva de algo, la verdad es que el curso se me hace muy interesante, normalmente he trabajado agregando metaboxes con CMB2 en la parte administrativa para creación de contenido, pero el trabajar un plugin que renderice contenido en la parte del front no lo había trabajado, me estoy emocionando muchísimo.
Muy pro... Gracias
Listo. La forma más sencilla es repetir todo el proceso pero con el archivo signin.html.
Crear un archivo separado para este nuevo shortcode y registrarlo en el archivo principal del plugin.
Otra opción es renombrar el archivo de shortcodes a p.e form_shortcodes.php y poner ahí los dos. Así solo necesitamos registrar una vez el archivo de shortcodes.
Shortcode
Un shortcode es un código abreviado qque puedes insertar en el editor de tu web para añadir funcionalidades al contenido de tu página. En otras palabras se podría describir un shortcode como un acceso directo a un script PHP.
plugin-login.php
<?phpfunctionplz_add_register_form(){$response='
<div class="signin">
<div class="signin__container">
<h1 class="sigin__titulo">Register</h2>
<form class="signin__form" id="signin">
<div class="signin__name name--campo">
<label for="Name">Name</label>
<input name="name" type="text" id="Name">
</div>
<div class="signin__email name--campo">
<label for="email">Email</label>
<input name="email" type="email" id="email">
</div>
<div class="signin__pass name--campo">
<label for="password">Password</label>
<input name="password" type="password" id="password">
</div>
<div class="signin__submit">
<input type="submit" value="Create">
</div>
</form>
</div>
</div>
';return$response;}add_shortcode("plz_registro","plz_add_register_form");// Se agrega con el bloque shortcode a través de: [plz_registro]
No hace falta "sanitize" (no sé cómo se diría en español) los inputs? WP se encarga o cómo tomamos precauciones de seguridad?
Porque hay algunos plugins que usa este tipo de condición despues de la documentacion?
if ( ! defined( 'ABSPATH' ) ) {
// Some Text or Code
}
En mi Visual Studio, no se me completan las opciones como al profe... Seguramente es alguna extensión. Alguien me puede orientar?, por favor.
El profe tambien menciono que tenia 2 extensiones al inicio del curso, igualmente... Se agradece todo lo que puedan aportar al respecto.
De antemano, gracias
PHP debug y Hooks IntelliSense
De donde sale el nombre del ShortCode
plz_registro
???
.
El hook que tenes que utilizar se llama wp_enqueue_scrips, por más que sean estilos. Tendrías que poner ese hook donde tenes el wp_enqueue_style. 😊
Muchas gracias profe, funcionó! hora de seguir con el curso.
No se como se edita o borra un hilo.
Ya encontré donde se creo el plz_registro.
Mis excusas.
Por favor!! el github!!
No me aparece la pagina
Yo vengo del curso de themes y se me complica la parte del menu.
Me aparece la pestaña de Sign UP pero no pasa nada si acciono al Sign in.
Estoy confundido
También puede poner todo el html en un archivo aparte, requerirlo en el shortcode de la siguiente manera: