Contenido

Separar comentarios de pingbacks en tus themes de WordPress 2.7en

8 nov

+ 15

Hace unos días, vimos que WordPress 2.7 integra un Loop para comentarios que simplifica la plantilla de comentarios una barbaridad. Esto puede parecer muy sencillo, pero a simple vista te preguntas: ¿Como separo los comentarios de los pingbacks/trackbacks?

if ( have_comments() ) : ?>
<h4 id="comments"><?php comments_number('No Comments', 'One Comment', '% Comments' );?></h4>
<ul class="commentlist">
	<?php wp_list_comments(); ?></ul>
<div class="navigation">
<div class="alignleft"><?php previous_comments_link() ?></div>
<div class="alignright"><?php next_comments_link() ?></div>
</div>
<?php else : // this is displayed if there are no comments so far ?>
	<?php if ('open' == $post->comment_status) :
		// If comments are open, but there are no comments.
	else : // comments are closed
	endif;
endif;

Matt de Sivel.net se lo ha preguntado y ha dado con una solución igual de sencilla que el uso del nuevo Loop.

<?php if ( have_comments() ) : ?>
	<?php if ( ! empty($comments_by_type['comment']) ) : ?>
	<h3 id="comments"><?php comments_number('No Responses', 'One Response', '% Responses' );?> to &#8220;<?php the_title(); ?>&#8221;</h3>

	<ol class="commentlist">
	<?php wp_list_comments('type=comment'); // COMENTARIOS ?> 
	</ol>
	<?php endif; ?>

	<?php if ( ! empty($comments_by_type['pings']) ) : ?>
	<h3 id="pings">Trackbacks/Pingbacks</h3>

	<ol class="commentlist">
	<?php wp_list_comments('type=pings');   // PINGBACKS Y TRACKBACKS ?>
	</ol>
	<?php endif; ?>

	<div class="navigation">
		<div class="alignleft"><?php previous_comments_link() ?></div>
		<div class="alignright"><?php next_comments_link() ?></div>
	</div>
 <?php else : // SI NO HAY COMENTARIOS ?>

	<?php if ('open' == $post->comment_status) : ?>
		<!-- COMENTARIOS ESTAN ABIERTOS, PERO ESTAN VACIOS -->

	<?php else : // SI LOS COMENTARIOS ESTAN CERRADOS ?>
		<!-- If comments are closed. -->
		<p class="nocomments">Comments are closed.</p>

	<?php endif; ?>
<?php endif; ?>

La magia

Como podemos ver el código es realmente sencillo, únicamente hemos de solicitar mediante un parámetro el tipo de comentarios que queremos en cada una de las llamadas a wp_list_comments().

Llamada al template (Actualización)

tikitakfire me avisa de que falta añadir la llamada al template de comentarios comments_template() que en esta versión ha sido modificada y tendremos que llamarla de la siguiente forma :

comments_template('', true);

este código deberá ir en el lugar de tu theme donde antes estaba comments_template(), generalmente en el fichero index.php, single.php y page.php.

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.