Publicado el Saturday 28 de July del 2007 @ 3:24 por Armonth.
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).
Podrías ahorrarte unas letras haciendo algo asi :D
<?php if ($comment->comment_approved == ’1′): ?>
<div class=”contador”>#<?php echo $contador++; ?></div>
<?php endif; ?>
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
Por cierto, lo de “quote comments” me parece interesante, hay como 2 plugins pero ninguno sirve bien =S A ver si planeamos hacer uno ;)
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.
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.
@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
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)
“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.
Gracias, a mí me funcionó como lo explicaste.
Ahora estoy tratando de cambiar el estilo de los números.
Gracias de nuevo.
Perfecto, esto es lo que buscaba.
Gracias.
J.