Gravatar de Armonth

Numerar comentarios en WordPress

Me acaban de pedir cómo numerar comentarios y recordando que en SigT antes mostraba el número de comentario en cada discusión he pensando que no sería mala idea “rescatar” el código ya que sólo comente cómo separar comentarios y trackbacks.

La idea es muy básica: un simple contador. Todo lo que hay que modificar (salvo aspecto que obviamente va al CSS) está en el fichero comments.php y nos basaremos en el código publicado anterioremente. Si queremos que nos cuente por separado los comentarios y las referencias sólamente habrá que repetir el contador en la parte de mostrar trackbacks.

En la parte que hace referencia a los comentarios, vamos a modificar la siguiente línea:

<?php foreach ($comments as $comment) { ?>

Por:

<?php $contador = 1; foreach ($comments as $comment) {

Luego si el comentario ha sido aprobado sólo tenemos que mostrarlo y sumar +1 para el próximo comentario. Por ejemplo encima de:

<?php comment_text() ?>

Pondremos:

<?php if ($comment->comment_approved == '1'): ?>
  <div class="contador">#<?php echo $contador; $contador++; ?></div>
<?php endif; ?>

La clave está en que para evitar desorden sólo debe enumerarlos si han sido aprobados. El problema de esto es a la hora de referenciarlos si por ejemplo nos hacemos eco del comentario número 4 y antes de ése hay un comentario no aprobado éste pasará a ser el número 4.

Podemos repetir sin problemas el mismo código para los trackbacks (si los tenemos separados). Y con un poco de maña y AJAX incluso se podría hacer un sistema de citaciones estilo menéame (reconozco que me gusta :-P).

10 Comentarios (feed)

  1. Gravatar de aNieto2k aNieto2k nos comenta:

    Podrías ahorrarte unas letras haciendo algo asi :D

    <?php if ($comment->comment_approved == ‘1′): ?>
    <div class=”contador”>#<?php echo $contador++; ?></div>
    <?php endif; ?>

    Sábado, 28 de Julio/2007 @ 12:25

  2. Gravatar de Alex Alex nos comenta:

    Excelente, seguramente que ayudaras a muchos usuarios Wordpress =) Yo tambipen enumero los comentarios, pero una manera distinta. Creo (y corrigeme si me equivoco) que no es necesario if ($comment->comment_approved == ‘1′).

    Saludos
    Alex =D

    Sábado, 28 de Julio/2007 @ 19:20

  3. Gravatar de Alex Alex nos comenta:

    Por cierto, lo de “quote comments” me parece interesante, hay como 2 plugins pero ninguno sirve bien =S A ver si planeamos hacer uno ;)

    Sábado, 28 de Julio/2007 @ 19:21

  4. Gravatar de Eduo Eduo nos comenta:

    A lo mejor hay razones que no veo pero no sería más fácil simplemente hacer los contenedores de comentarios elementos LI dentro de un OL?

    Me parece lo mas correcto. Especialmente si los trackbacks ya han sido separados.

    Sábado, 28 de Julio/2007 @ 19:22

  5. Gravatar de Eduo Eduo nos comenta:

    Para cita yo uso el “Quoter” que sin mas pega el texto al que se contesta. Si tienes comentarios anidados ya casi es todo lo que se necesita.

    Reconozco que yo personalmente ODIO, de una forma visceral y desproporcionada, el referirse a los comentadores por número. Es que no puedo con ello, a lo mejor porque cuando alguien dirige un comentario a “#23″ ni pienso ni creo ni quiero imaginar que me habla a mi.

    Sábado, 28 de Julio/2007 @ 19:25

  6. Gravatar de Armonth Armonth nos comenta:

    Eduo ¿has leído el código? Los comentarios y trackbacks son listas numeradas… lo que pasa es que lo que queremos es enumerarlos controlando la apariencia de esa numeración, por ejemplo poniendo el número de comentario abajo-derecha “de fondo” y eso si no me equivoco con la numeración de los ol/li no se puede…

    Sábado, 28 de Julio/2007 @ 19:25

  7. Gravatar de Alex Alex nos comenta:

    @Eduo
    Yo usaba Quoter, pero da error cuando usan quote en las páginas (no en los posts) y también se ve feo cuando haces quote a un comentario que ya tiene quote :S

    Sábado, 28 de Julio/2007 @ 19:39

  8. Gravatar de Eduo Eduo nos comenta:

    Armonth: Si lo he leído, pero estaba pensando en utilizar “counter()” y “before:” que realmente no es algo que hoy en día sea buena idea.

    Incluso viendo uno de los sitios con los comentarios numerados que más me gustan están utilizando, precisamente, numeración del lado del servidor.

    Lo siento por la confusión. Idealmente CSS 2.1 debería permitir mayor estilo del contador pero realmente elimina la necesidad de un OL por lo mismo (counter es independiente de la etiqueta)

    Domingo, 29 de Julio/2007 @ 6:00

  9. Gravatar de javi javi nos comenta:

    “quoter” lo descarté porque es muy repetitivo en la conversación. Es casi imprescindible numerar comentarios para referirte a alguien sin que lleve a malentendidos.

    Domingo, 29 de Julio/2007 @ 8:27

  10. Gravatar de amaliovilla amaliovilla nos comenta:

    Gracias, a mí me funcionó como lo explicaste.
    Ahora estoy tratando de cambiar el estilo de los números.
    Gracias de nuevo.

    Martes, 7 de Agosto/2007 @ 19:57

No seas tímido, da tu opinión

Sé respetuoso con los demás, la diferencia de opiniones enriquece la discusión, los comentarios bajo ciertas circunstancias pueden ser moderados y requerir aprobación.