Contenido

WordPress 2.7 y la compatibilidad de comentarios en los themes

5 nov

+ 12

WordPress 2.7 integra muchísmas mejoras y nuevas reprogramaciones que afectarán a desarrolladores, tanto de plugins como de themes. Una de estas nuevas funcionalidades es la forma de mostrar los comentarios en los themes, que ahora permitirá paginación, anidamientos,… pero por desgracia tu theme debe estar preparado para ello.

Comprobación

if (function_exists('wp_list_comments')) :
// WordPress 2.7
else :
// WordPress 2.6-
endif;

La nueva función wp_list_comments() nos hará de booleano para conocer si estamos en la versión nueva o una versión inferior a la 2.7. Aunque podemos hacerlo de una forma más elegante usando la API de plugins para ello:

<?php
add_filter('comments_template', 'legacy_comments');
function legacy_comments($file) {
	if(!function_exists('wp_list_comments')) $file = TEMPLATEPATH . '/legacy.comments.php';
	return $file;
}
?>

De esta forma en caso de tratarse de una versión inferior a la 2.7 nos cargará el fichero legacy.comments.php con la estructura actual.

Loop de Comentarios

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;

Si nos fijamos el Loop que la nueva versión nos ofrece para mostrar los comentarios es muy similar al que vimos para los posts. Quizas la novedad más interesante puede ser la de disponer de paginación mediante 2 simples funciones previous_comments_link()next_comments_link().

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.