Separa y diferencia los trackbacks de los comentarios

This post was published 10 years ago. It may be exremely outdated.

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:

  1. Inicia el código PHP
  2. Crea una nueva variable ($comment_type), que contiene el valor del tipo de comentario (comment, trackback, etc).
  3. 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.
  4. 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.
  5. 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 Response to Separa y diferencia los trackbacks de los comentarios

Leave a Reply