A primera vista estás colocando tu
query_posts antes de la condicional
if(have_posts) cuando debería ir primero. Dale un vistazo a la estructura de
The Loop.
Esto no tiene sentido:
Código PHP:
Ver original<?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
Por otro lado, se nota que el código no pertenece a una
página de categorías como tal, sino que se trata de un
index.php genérico, cierto?. Para crear funciones complejas de categorías es mejor que separes archivos y trabajes sobre
category.php (si no existe créalo). Por ejemplo, el nuevo código que metiste no se encuentra sujeto a ninguna condicional que indique que sólo se activará si pertenece a una categoría, por lo que podría generarte añgun error si estás en páginas internas o dentro de entradas o tags.