Añadir un formulario de sesión de WordPress en cualquier página o widget (sin plugins)

A menudo puede ser interesante insertar un formulario de inicio de sesión en alguna página interna o zona de widgets de nuestra plantilla.

Para crear el formulario de inicio de sesión, definiremos la función en el archivo de funciones del tema activo (functions.php) o en nuestro propio plugin de funciones. Después vamos a poder llamar a nuestro formulario a través de un simple shortcode.

Vamos a comenzar, definiendo la función que construirá el formulario de sesión:

Puedes copiar y pegar directamente este código, pero antes vamos a ver un poco en qué consiste.

El formulario de sesión lo controla una función interna de WordPress llamada wp_login_form(), a esta función le podemos pasar una serie de argumentos que definimos anteriormente en el array $args.

Algunos de estos argumentos son:

  • redirect: que redirige a https si se encuentra el SSL habilitado (certificado de seguridad instalado en el servidor).
  • label_username: que pinta el campo de nombre de usuario.
  • label_password: que pinta el campo de contraseña.
  • label_remember: que habilita el checkbox para recordar al usuario en el futuro.

Los demás argumentos asocian los datos introducidos en el formulario con las variables internas de WordPress para hacer las comprobaciones de usuario y contraseña.

Después de definir los argumentos pasamos a realizar una comprobación:

Si el usuario ya tiene una sesión iniciada, en lugar de mostrar el formulario de sesión, mostraremos un pequeño texto de bienvenida:

Para obtener el nombre del usuario, pasamos a $current_user todos los atributos del usuario activo, gracias a la función wp_get_current_user().

Y lo mostramos con $current_user->display_name.

Además, añadimos un pequeño enlace para cerrar sesión, gracias a la función wp_logout_url(), donde se le puede pasar como parámetro la dirección hacia la que redirigir tras cerrar la sesión. En nuestro ejemplo hemos usado the_permalink(), para continuar en la misma página donde nos encontrábamos.

Ahora pasamos a la segunda parte de la condición:

Si el usuario no tienen sesión iniciada, mostramos el formulario de sesión con wp_login_form($args), pasándole como parámetros los argumentos definidos al inicio.

Finalmente creamos el shortcode asociado a la función que hemos terminado:

Ahora solamente tenemos que llamar al shortcode en el lugar donde queramos mostrar el formulario, que puede ser en el contenido de una página, en una entrada, o en un simple widget de texto, escribiendo simplemente:

[form-sesion]

Espero que te haya sido de utilidad este último artículo del año 2018.

Desde gestionatuweb.net, te deseo unas felices fiestas y próspero año 2019. Nos vemos en siguientes posts!

0 Comentarios

Responder

XHTML: Puedes usar esas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Contacta con Gestionatuweb
 
×

Utilizamos cookies para mejorar la experiencia de uso y obtener datos estadísticos de nuestras visitas. Si no aceptas las condiciones algunos apartados de la web podrían no funcionar correctamente. Más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar