Diseccionando el archivo ‘comments.php’

NetTuts ha creado un estupendo tutorial completo sobre todas y cada una de las partes del fichero ‘comments.php’, la parte de tu blog que mas utilizan tus lectores, y en realidad la única donde pueden interactuar, ser colaborativos.

Nosotros ya hemos publicado algún hack y guía sobre cuestiones de este fichero pero nada tan completo como esto, así que lo traducimos y explicamos (a nuestra manera, como siempre) para que también el lector de habla hispana tenga a su merced este conocimiento.

En este artículo iremos diseccionando cada parte del archivo ‘comments.php’ del tema por defecto de WordPress (Kubrick), explicando lo que significa cada sección del mismo y dando indicaciones de como personalizar el archivo y, en consecuencia, lo que verán tus lectores del blog.

Vamos al grano …

1. El Back-end de PHP

Este es el código PHP original que hace funcionar el fichero ‘comments.php’, quizás algo intimidatorio para el novato. Pero no te preocupes, después de este tutorial lo vas a conocer como si lo hubieses creado tu mismo y podrás retocarlo sin miedo a romper nada. Por supuesto, recomendamos que los cambios se hagan en una instalación local y no en tu propio blog, tus lectores no tienen porqué sufrir nuestros experimentos.

2. Código General

Evitando el acceso directo a comments.php

Esta línea de código evita que los usuarios vean comments.php por accidente. Esta página se supone que debe estar incluida en una página de post, no por separado. Debes considerar esta parte como una medida de seguridad. Dentro de la declaración puedes insertar cualquier mensaje que quieras que se muestre al lector que esté viendo el fichero comments.php, preferiblemente un aviso de error.

¿Se requiere contraseña?

Esta declaración (en realidad son 2 pero tiene mas sentido contemplarlo como una sola) comprueba si se requiere contraseña para ver el post. Obviamente, si no tienes una contraseña para ver el post, no podrás ver los comentarios.

La primera parte comprueba si se ha establecido una contraseña. La segunda declaración ‘if’ comprueba si hay una cookie con una contraseña y muestra el mensaje adecuado si no la encuentra. Puedes personalizar el mensaje de error poniendo lo que quieras dentro de la segunda declaración ‘if’.

3. Mostrando los Comentarios

La primera declaración condicional (if($comments)) comprueba si hay comentarios, y luego sigue a través de ellos con una declaración foreach (para cada uno). Dentro de la declaración foreach puedes observar la siguiente declaración condicional: if($comment->comment_approved == '0'). Esto comprueba si el comentario ha sido aprobado, y muestra un mensaje si aún no está aprobado.

Un ejemplo de esto sería el siguiente código:

Etiquetas principales de la plantilla de comentarios

Para hacer un código funcional necesitas conocer y usar las etiquetas de plantilla que tiene WordPress.

Etiqueta de PlantillaDescripción
<?php comment_ID(); ?>el ID de un comentario
<?php comment_author(); ?>el autor de un comentario
<?php comment_author_link(); ?>el autor de un comentario, con enlace a su web si lo especificó
<?php comment_type(); ?>el tipo de comentario; pingback, trackback o comentario
<?php comment_text(); ?>el texto del comentario
<?php comment_date(); ?>la fecha en que se publicóposted
<?php comment_time(); ?>la hora a la que se publicó

El Resultado Final

Insertando esto dentro de ‘comments.php’ te dará una lista ordenada con los comentarios y la información requerida o, por el contrario, mostrará un mensaje declarando que no hay comentarios.

4. El Formulario de Comentarios

¿Todavía estás ahí?, ¡Perfecto!. Ya casi lo tenemos. Solo tenemos que procesar esto del formulario de comentarios … Vale, puede que no sea del todo cierto que ya casi lo tengamos. El formulario de comentarios es realmente una de la partes mas difíciles de todo el fichero ‘comments.php’.

Todavía te vas a encontrar con un buen montón de declaraciones condicionales (si se necesita registrarse, si ya estás registrado, etc). Esta parte es donde la mayoría de los principiantes tienen mas probelamas, y es que colocar mal los elementos del formulario puede hacer que no funcione en absoluto, dando algún tipo de error PHP.

Para que tengas un punto de vista completo de las declaraciones condicionales necesarias en el formulario de comentarios, primero explicaré las declaraciones, y luego incluiré el HTML para explicar donde debería ir cada una de las declaraciones.

Un Vistazo a las Declaraciones Condicionales

La primera declaración condicional que te encuentras es <?php if(comments_open()) : ?> . Esto básicamente comprueba si los comentarios están abiertos. Obviamente, si están cerrados no podrás publicar un comentario y el formulario no es necesario. Puedes poner el mensaje que quieras que se visualice si los comentarios están cerrados entre el último <?php else : ?> y<?php endif; ?>.

La segunda declaración condicional (<?php if(get_option('comment_registration') && !$user_ID) : ?>) comprueba si tienes qu estar registrado para publicar un comentario y si ya estás registrado (y conectado). Si la declaración condicional está disponible el script mostrará un enlace a donde los usuarios pueden registrarse. Si no se requiere registro o si ya estás conectado, el script continúa con la parte else (del inglés: “el resto” o “lo otro”).

La declaración condicional final comprueba si estás conectado o no (usuario registrado y conectado). Si ya estás conectado no hace falta que rellenes tu nombre, email y web de nuevo, tomará esos datos de tu información de registro en el blog.

Insertando el Formulario

Felicidades, ya hemos pasado el mal trago de las declaraciones condicionales del fichero ‘comments.php’. Ahora lo que nos queda es añadir el formulario.

Seguro que lo primero que has pensado es “¿donde demonios empieza el formulario?”. Bueno, solo tienes que aplicar el sentido común. La segunda declaración condicional comprueba si hay que estar registrado o no, en consecuencia no habrá que mostrar un formulario después de esta declaración. Así que es fácil deducir que el formulario deberá estar situado dentro de esta declaración condicional.

También hemos puesto el enlace a la página de registro, como aparece en el fichero ‘comments.php’ original. Como he comentado antes, la última declaración condicional comprueba si estás conectado o no. Obviamente, los campos de nombre, email y web solo se muestran si no estás conectado. Vamos a ello …

¡Perfecto! Ya casi lo tenemos. Ahora solo necesitamos añadir unas cuantas líneas de código, como el área de texto o el botón de enviar. Estos van después de la última declaración condicional, ya que es irrelevante para estos elementos si estás registrado o no, se tienen que mostrar siempre.

Este código es auto-explicativo. Un campo de texto para el comentario, un botón de enviar, un campo oculto con el ID de comentario y el campo PHP (<?php do_action('comment_form', $post->ID); ?>) que WordPress necesita para hacer que funcione el comentario.

¡Voila! ¡Eso es todo amigos wordpreseros! Ya tenemos un fichero ‘comments.php’ completo.

5. Unos cuantos Trucos

Por supuesto, lo que tienes es un fichero ‘comments.php’ básico, pero hay toneladas de cosas que puedes añadir. Vamos a ver algunas.

Gravatars

Desde WordPress 2.5 hay una etiqueta de plantilla para insertar gravatars. Coloca un gravatar relativo al email del visitante. El código para hacer que tu plantilla muestre los gravatars es muy sencillo.

Puedes remplazar $author_email con la función get_comment_author_email();, $size es el tamaño del avatar y $default_avatar es un enlace a la imagen de avatar por defecto (mostrada cuando el que comenta no tiene gravatar).

Inserta este código dentro del loop de foreach que muestra los comentarios. Lo que se verá es una imagen con las clases avatar y avatar-$size (donde $size es el tamaño que especifiques).

Numerar Comentarios

Normalmente, la gente tiene un encabezado que muestra algo como “Hay 3 comentarios a esta entrada”. Esto es muy fácil de añadir con las etiquetas de plantilla.

Es bastante obvio lo que hace: $zero_comments es el texto a mostrar cuando no hay comentarios, $one_comment para cuando hay un comentario y $more_comments cuando hay varios comentarios. Un ejemplo real de esto sería algo así:

He utilizado % para cuando hay varios comentarios, ya que la función comments_number remplaza el % con el número de comentarios (2, 3, …)

Enlace a los Comentarios

Para mostrar un enlace a la parte de los comentarios (con el número de comentarios que hay) solo tienes que usar este código:

Los primeros 3 parámetros de esta función son los mismos que en la anterior función comments_number. $css_class es, obviamente, la clase CSS que te da la tag <a> (como se declaran los enlaces) y $comments_closed es el texto que debe mostrarse cuando los comentarios estén cerrados. Aplicando esto a una plantilla podría ser algo así:

Esto te daría un enlace con la clase comments-link.

Editando Comentarios

Seguro que hay veces en que querrías editar inmediatamente un comentario. Afortunadamente, con la función edit_comment_link puedes ir directamente a la página de edición del comentario sin tener que navegar por todo el panel. Se pondría así:

Tienes que poner esto dentro del loop de comentarios foreach. Los parámetros son claros: $link_text es el texto para el enlace de edición, $before_link y $after_link respectivamente, son el texto o el código a mostrar antes o después del enlace.

Con esto puedes editar muy fácilmente un comentario; puedes simplemente añadir un pequeño enlace ‘Editar’ a tu información meta de comentario (solo visible por el admin).

Alternando Colores en los Comentarios

Es posible que quieras tener filas de distintos colores para tus comentarios, para que la separación entre los mismos sea clara. Hacer esto es relativamente fácil. En primer lugar añade este código al principio de la página:

Luego añade lo siguiente dentro del loop foreach (de nuevo). Puedes, por ejemplo, remplazar <li id="comment-<?php comment_ID(); ?>"> con esto:

Esto le dará al resto de comentarios la clase alt, posibilitando el hecho de cambiar su aspecto mediante CSS.

Alternar los colores hará mas fácil de leer los comentarios de tu blog.

Mostrar las Etiquetas Permitidas

Para mostrar el código que los visitantes pueden usar en sus comentarios simplemente añade esta línea:

Con esa función se muestra una lista de las etiquetas permitidas para insertar en los comentarios.


Bueno, pues eso es todo (o casi) con el fichero ‘comments.php’. Espero que hayas aprendido algo y verlo pronto en tu blog. Si se te ocurre alguna función mas lo puedes contar en los “comentarios“.

AVISO: esta publicación es de hace dos años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

Valora este artículo para mejorar la calidad del blog ...

PobreRegularEstá bienMuy buenoExcelente (4 votos, promedio: 5,00 de 5)
Cargando…

Autor: Fernando

Fernando Tellado, apasionado de WordPress, profesor, consultor y ponente. Maquero cansino, padre de tres hijos y de una perrita Beagle, Bilbaíno de nacimiento, Español de corazón y ciudadano de donde me quieran.Autor del libro WordPress - La tela de la araña. Mi blog personal es Navegando con red, donde he crecido como escritor en la red y ofrezco mis visiones acerca de la Web 2.0 y la blogosfera.

Comparte esta entrada en
468 ad

ESTA WEB UTILIZA COOKIES PARA OFRECER LA MEJOR EXPERIENCIA POSIBLE. SI SIGUES NAVEGANDO DAS TU CONSENTIMIENTO PARA LA ACEPTACIÓN DE COOKIES Y NUESTRA POLÍTICA DE PRIVACIDAD 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