Separa y diferencia los trackbacks de los comentarios
Hace unos días ya hablé sobre cómo diferenciar los comentarios de los administradores y hoy toca hablar sobre cómo distinguir los trackbacks de los comentarios.
Seguimos trabajando en el theme Classic de WordPress, que si habéis seguido los tutoriales que he ido escribiendo tendrá:
- Múltiples sidebars (tutorial)
- Distinción entre comentarios de administradores (tutorial)
- Y ahora diferencia entre comentarios y trackbacks.
El objetivo de este tutorial es hacer que en los trackback aparezca el nombre del autor antes del texto del comentario, y que en el lugar donde antes aparecía el nombre del autor ahora indique que se trata de un trackback y no de un comentario “normal”.
Sólo editaremos un único archivo en el tutorial, y será comments.php (de mi querido theme Classic).
Así que abrimos el archivo y nos fijamos en el bucle foreach, que comienza en la línea 14 y acaba en la 21. Todas las modificaciones que haremos estarán entre esas líneas, ya que si no no afectarán a todos los comentarios.
Nos situamos en la línea 17, antes de:
<?php comment_text() ?>
Y sustituimos estas otras líneas:
<?php
$comment_type = get_comment_type();
if($comment_type != 'comment') { echo '<h3>'; comment_author(); echo'</h3>'; }
comment_text();
?>
Explico que hace cada una:
- Inicia el código PHP
- Crea una nueva variable ($comment_type), que contiene el valor del tipo de comentario (comment, trackback, etc).
- Compara el valor de la variable $comment_type (en cada comentario) y si no es igual a comment (lo que significa que hablamos de un Trackback o un Pingback) muestra el nombre del autor.
- Muestra el texto del comentario, con lo que hemos cumplido la primera parte del objetivo del tutorial:
Mostrar el nombre del autor antes del contenido si se trata de un trackback. - Cierra el código PHP.
Después de esto nos queda la segunda parte del tutorial: En el caso de ser un trackback, donde antes se mostraba el nombre del autor ahora se debe mostrar la palabra Trackback.
Sin embargo el theme Classic es algo especial, y nos indica si se trata de un Trackback, un comentario o un Pingback antes de decirnos el nombre del autor, así que modificaremos el código, y en caso de ser Trackback no mostraremos el nombre del autor, sólo el indicador de Trackback.
Nos situamos en la línea 22, y sustituímos:
<?php _e('by'); ?> <?php comment_author_link() ?>
Por este otro código:
<?php if($comment_type == 'comment') { _e('by'); echo ' '; comment_author_link(); } ?>
¿De qué se compone este código?
Pues básicamente es otra comparación, sólo que esta ejecuta el código sólo si el valor de la variable $comment_type es igual a comment, es decir, sólo ejecuta el código en los comentarios “normales”.
Si el valor es igual, nos muestra el nombre del autor.
Así de sencillo es indicar si se trata de Trackbacks o no.
Descargas
Como en otros tutoriales, podéis descargar el theme Classic modificado desde aquí.
One reply on “Separa y diferencia los trackbacks de los comentarios”