Seguramente habrás podido comprobar que en muchos blogs cuando dejamos un comentario por primera vez, al vover a dejar otro comentario, los campos de “Nombre”, “E-mail” y “URL” suelen permanecer con los datos que hemos dejado.
Obviamente esto sucede porque dichos datos se almacenan en unas cookies en el ordenador de nuestros visitantes, a los cuales podemos acceder gracias a unas funciones en Wordpress.
Esto suele ser una buena herramienta para nosotros y servir de ayuda a nuestros lectores, porque le facilitamos la tarea de no tener que volver a escribirlos.
Los valores a tener en cuenta se los localizamos en:
$comment_author
$comment_author_email
$comment_author_url
Nuestro objetivo sera modificar nuestro archivo comments.php para que luego de cada comentario dejado, Wordpress recuerde automáticamente estos datos y se lo muestre al usuario, así este no tiene la necesidad de volver a introducirlos.
Tal y como lo mencione arriba, Wordpress almacena esta información por nosotros, solo resta hacer el llamado y mostrar nuestro output y para ello empleamos la función esc_attr() de la siguiente forma:
<?php echo esc_attr($comment_author); ?>
<?php echo esc_attr($comment_author_email); ?>
<?php echo esc_attr($comment_author_url); ?>
Seguramente te estarás preguntando donde lo ubicamos, pues es muy sencillo, basta con hacerlo en la parte del formulario donde se solicitan los datos, cambiando únicamente el valor de nuestro input, por ejemplo: si dispones del mismo tema que estoy usando yo, debes hacer lo siguiente:
- Abrir el fichero comments.php
- Luego localizamos el siguiente código:
<p><input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> />
<label for="author"><small>Nombre <?php if ($req) echo "(required)"; ?></small></label></p> <p><input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> />
<label for="email"><small>E-mail (no será publicado) <?php if ($req) echo "(required)"; ?></small></label></p>
<p><input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="22" tabindex="3" />
<label for="url"><small>Web/Blog</small></label></p>
- A continuación modificamos el código anterior por el siguiente:
<p><input type="text" name="author" id="author" value="<?php echo esc_attr($comment_author); ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> />
<label for="author"><small>Nombre <?php if ($req) echo "(required)"; ?></small></label></p> <p><input type="text" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> />
<label for="email"><small>E-mail (no será publicado) <?php if ($req) echo "(required)"; ?></small></label></p><p><input type="text" name="url" id="url" value="<?php echo esc_attr($comment_author_url); ?>" size="22" tabindex="3" />
<label for="url"><small>Web/Blog</small></label></p>
Con esto hemos conseguido recuperar los datos de las cookies y de esta forma el visitante no tiene que escribir nuevamente sus datos (Nombre, E-mail, URL)
Saludos, me parece muy interesante los trucos que se dan en este post pero me gustaria saber como puedo hacer el proceso contrario, ya que estoy diseñando un blog al cual le agregue una pagina donde inserte un formulario html (un login) el cual llama a otra pagina PHP y resulta que los datos que meti la primera vez (usuario y pass) ahora no se borran. Que le agrego para que se borren cada vez que pulse el boton (submit).
Codigo que esta en la pagina:
Introducir datos de Ingreso:
Usuario:
Contraseña:
Puedes hacerlo creando un botón para restaurar, el cual tenga la función limpiar por ejemplo, como el siguiente código:
La función para limpiar sería como la siguiente:
function Limpiar() {
var vera = document.getElementById(«elemento»).getElementsByTagName(«input»);
for (var i=0; i<vera.length; i++) {
vera[i].value = "";
}
}
Antes del campo usuario, del código de tu formulario, ubica un elemento div
Usuario:Contraseña:y justo debajo de aquí llamamos a la función para limpiar, después del botón enviar, o bien lo dejamos también como tipo botón para que el usuario limpie los datos.Otro método sería, introducir lo siguiente en el input del «submit»:onsubmit=»return comprueba();»;y creamos la función:function comprueba() { if(document.commentform.nombre_usuario.value!=» »)document.commentform.nombre_usuario.value=» «;if(document.commentform.pass_usuario.value!=» »)document.commentform.pass_usuario.value=» «; return true;}En la función comprobamos que los campos no tengan valor nulo y en caso afirmativo, es decir, que tengan texto, los limpiamos y devolvemos true en la función, para continuar el proceso.Espero haberte ayudado, un saludo y gracias por comentar.