Hosting en inglés

Registro de dominios

Hosting SSD Wordpress

¿Cómo crear plantillas de categorías en WordPress?

¿Han visitado un sitio donde cada categoría tiene una plantilla distinta? En el desarrollo de temas de WordPress, es una práctica común el uso de diferentes plantillas para las categorías, etiquetas, tipos de posts personalizados y taxonomías. Mediante la creación de plantillas para categorías se pueden agregar características específicas en las páginas de categorías. Por ejemplo, se puede permitir a los usuarios suscribirse a las categorías, añadir imágenes por categoría, mostrar descripciones en cada categoría y elegir un diseño diferente para cada categoría. En esta guía, le mostraremos cómo crear plantillas de categoría en WordPress.

Jerarquía de Plantillas de WordPress para Páginas de Categorías

WordPress tiene un sistema de plantillas de gran alcance. El usuario puede crear un tema de WordPress utilizando diferentes plantillas para diferentes secciones de su sitio web. WordPress busca una plantilla en un orden jerárquico pre-definido al mostrar cualquier página. Para mostrar una página de categorías, WordPress busca plantillas en este orden.

category-slug.php → category-id.php → category.php → archive.php → index.php

Primero WordPress buscará una plantilla específica para esa categoría en particular utilizando el slug de la categoría, por ejemplo, la plantilla categoria-diseño.php se utiliza para mostrar la categoría ‘Diseño’. Si no encuentra una plantilla de categoria-slug, entonces WordPress buscará una plantilla con categoría id, por ejemplo, categoria-6.php. Después de esto, WordPress busca la plantilla de categoría genérica que suele ser category.php. Si no existe una plantilla de categoría genérica presente, entonces WordPress buscará el archivo de plantilla genérico, es decir archive.php. Por último se utilizará la plantilla index.php para mostrar la categoría.

¿Como crear una plantilla de categoría en WordPress?

Primero vamos a echar un vistazo a una plantilla category.php típica.

<?php

/**

* A Simple Category Template

*/

get_header(); ?>

<section id=”primary” class=”site-content”>

<div id=”content” role=”main”>

<?php

// Check if there are any posts to display

if ( have_posts() ) : ?>

<header class=”archive-header”>

<h1 class=”archive-title”>Category: <?php single_cat_title( ”, false ); ?></h1>

<?php

// Display optional category description

if ( category_description() ) :

<div class=”archive-meta”><?php echo category_description(); ?></div>

<?php endif; ?>

</header>

<?php

// The Loop

while ( have_posts() ) : the_post();

<h2><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”Permanent Link to <?php the_title_attribute(); ?>”><?php the_title(); ?></a></h2>

<small><?php the_time(‘F jS, Y’) ?> by <?php the_author_posts_link() ?></small>

<div class=”entry”>

<?php the_content(); ?>

<p class=”postmetadata”><?php

comments_popup_link( ‘No comments yet’, ‘1 comment’, ‘% comments’, ‘comments-link’, ‘Comments closed’);

?></p>

</div>

<?php endwhile;

else: ?>

<p>Sorry, no posts matched your criteria.</p>

<?php endif; ?>

</div>

</section>

<?php get_sidebar(); ?>

<?php get_footer(); ?>

Ahora, supongamos que tenemos una categoría llamada “Diseño” con el category-slug “design” y queremos que esta categoría se muestre de modo distinto en el sitio. Para hacer esto, es necesario crear una plantilla para esa categoría en particular. Primero tenemos que ir a Appearance>Editor. De la lista de archivos del tema activo en WordPress (aparecen al lado derecho), hacemoc clic en category.php, pero si no hay un archivo category.php ahí, entonces hay que buscar archive.php.

Si encontramos los archivos antes mencionados, el siguiente paso es copiar todo el contenido de category.php y copiarlo en un editor se texto como Notepad. Luego salvamos este archivo como category-diseño.php.

Ahora, nos conectamos al sitio usando un cliente FTP. Por medio de esta herramienta, ingresamos a /wp-content/themes/nuestro-tema-actual/ y subimos el archivo category-diseño.php al directorio del tema. Cualquier cambio que hagamos a esta plantilla solo va a aparecer en la página de archivos de la categoría en particular. Por medio de esta práctica, es posible crear plantillas nuevas para cada categoría que queramos. Solo tenemos que usar category-{slug de categoría}.php como el nombre del archivo. Podemos encontrar los slug de categorías en la sección de categorías en el área de administración de WordPress.

A continuación mostramos un ejemplo de una plantilla category-slug.php. Se puede notar que hemos utilizado la misma plantilla de category.php con unos pocos ejemplos. Dado que ya conocemos la categoría en que la plantilla va a ser usada, podemos añadir un título, descripción u otros detalles de forma manual. Tambien se puede notar que hemos usado <?php the_excerpt(); ?> en lugar de <?php the_content(); ?> para mostrar extractos en lugar de artículos completos.

<?php

/**

* A Simple Category Template

*/

get_header(); ?>

<section id=”primary” class=”site-content”>

<div id=”content” role=”main”>

<?php

// Check if there are any posts to display

if ( have_posts() ) : ?>

<header class=”archive-header”>

<?php

// Since this template will only be used for Design category

// we can add category title and description manually.

// or even add images or change the layout

?>

<h1 class=”archive-title”>Design Articles</h1>

<div class=”archive-meta”>

Articles and tutorials about design and the web.

</div>

</header>

<?php

// The Loop

while ( have_posts() ) : the_post();

<h2><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”Permanent Link to <?php the_title_attribute(); ?>”><?php the_title(); ?></a></h2>

<small><?php the_time(‘F jS, Y’) ?> by <?php the_author_posts_link() ?></small>

<div class=”entry”>

<?php the_excerpt(); ?>

<p class=”postmetadata”><?php

comments_popup_link( ‘No comments yet’, ‘1 comment’, ‘% comments’, ‘comments-link’, ‘Comments closed’);

?></p>

</div>

<?php endwhile; // End Loop

else: ?>

<p>Sorry, no posts matched your criteria.</p>

<?php endif; ?>

</div>

</section>

<?php get_sidebar(); ?>

<?php get_footer(); ?>

Sino queremos usar la plantilla category.slug, entonces podemos usar la plantilla category-id para crear una plantilla para una categoría de ID específica.

Uso de etiquetas condicionales para una categoría

Cuando creamos plantillas para nuestro tema de WordPress, una pregunta que debemos realizarnos es ¿Realmente se necesita una plantilla separada para todo lo que queremos hacer? En algunos casos, los cambio que queremos realizar no son muy complicados y pueden conseguirse utilizando etiquetas condicionadas dentro de una plantilla genérica, como category.php o incluso archive.php.

WordPress viene con soporte para muchas etiquetas condicionales que los autores de temas pueden utilizar en sus plantillas. Una de estas etiquetas condicionales es _category(). Por medio de esta etiqueta, el usuario puede cambiar sus plantillas para que muestren resultados distintos si la condición se cumple. Por ejemplo, supongamos que tenemos una categoría para artículos destacados llamada “Destacados”. Ahora, queremos mostrar algo de información adicional en la página de archivo de categoría para esta categoría en particular. Para conseguir esto, añadimos el siguiente código en el archivo category.php justo después de <?php if ( have_posts() ) : ?>.

<header class=”archive-header”>
<?php if(is_category( ‘Destacados’ )) : ?>
<h1 class=”archive-title”>Artículos Destacados:</h1>
<?php else: ?>
<h1 class=”archive-title”>Category Archive: <?php single_cat_title(); ?> </h1>
<?php endif; ?>
</header>


 

SUSCRÍBETE SIN COSTO ALGUNO A NUESTRO BOLETÍN

Escribe tú correo electrónico:

Recibe contenido de este sitio sin costo alguno en tu e-mail. Solamente enviaremos los últimos artículos de Internetrcc, sin ningún tipo de spam

Web hosting recomendado

alojamiento wordpress

Deja un comentario