Validación del formulario de comentarios

4 oct 2010, 14:50:40
Vistas: 15.7K
Votos: 4

¿Cómo puedo establecer las reglas de validación para el campo de comentarios?

Cambio el valor del nombre del comentarista/e-mail/página web en los eventos onmouseover y onblur (uso esto en lugar de etiquetas - así que si el campo está vacío muestra "Tu e-mail", "Tu página web", etc.). El problema es que al enviar, envía este texto en el campo de página web (ya que no tiene validación a diferencia del campo de e-mail donde obtienes un error si ingresas algo que no sea algo@algo.algo).

¿Cómo podría validar el campo de página web?

3
Comentarios

Había una pregunta similar sobre validación de formularios en el área de administración, la respuesta allí podría servirte: Validación de valores de meta boxes personalizados y campos obligatorios

Rarst Rarst
4 oct 2010 15:23:32

Gracias, pero parece que no puede modificar el valor ingresado, así que si alguien no escribe una URL en el campo "página de inicio", simplemente mostraría un mensaje de error (ya que "Tu página de inicio" no es una URL válida). Necesito que envíe el campo vacío, para que WordPress no cree un enlace sin sentido como "http://tu%20página%20de%20inicio").

Kilgore_Trout Kilgore_Trout
4 oct 2010 16:27:06

Ah, entendí mal un poco tu pregunta. Esto probablemente se puede hacer internamente en WordPress, pero no sé cómo - tendré que investigarlo. Como solución para el front-end también revisa Etiquetas Deslizantes, es lo que usé en mi blog para etiquetas inline ordenadas con un toque visual atractivo.

Rarst Rarst
4 oct 2010 17:53:47
Todas las respuestas a la pregunta 1
3

El procesamiento de comentarios se realiza en el archivo: wp-comments-post.php. Puedes usar el hook pre_comment_on_post para validar los valores ingresados en los campos del formulario de comentarios.

function custom_validate_comment_url() {
    if( !empty( $_POST['url'] ) && !preg_match( '\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]', $_POST['url'] ) // aquí puedes realizar la validación de URL (no soy un experto en regex)
        wp_die( __('Error: por favor ingresa una URL válida o deja vacío el campo de página web') );
}

add_action('pre_comment_on_post', 'custom_validate_comment_url');

Si deseas modificar un valor enviado, utiliza el filtro preprocess_comment. Por ejemplo:

function custom_change_comment_url( $commentdata ) {
    if( $commentdata['comment_author_url'] == 'Tu página web' )
        $commentdata['comment_author_url'] = '';
    return $commentdata;
}

add_filter('preprocess_comment', 'custom_change_comment_url');
4 oct 2010 22:33:22
Comentarios

¡Gracias! Entonces, si quiero cambiar un valor enviado durante la validación, ¿tengo que modificar eso? (El objetivo principal es que cuando el campo comment_author_url se envía con el valor "dummy" "Tu página de inicio", cambie a un campo vacío, para que no se muestre ningún enlace).

Kilgore_Trout Kilgore_Trout
5 oct 2010 12:02:13

He modificado mi respuesta.

sorich87 sorich87
5 oct 2010 12:38:24

cómo mostrar el error en la misma página debajo del formulario de comentarios

inrsaurabh inrsaurabh
4 jul 2018 09:01:18