Como hacer una pagina de archivos por categoria en wordpress

  • Categoría de la entrada:wordpress

Hago esto a pedido de lavidalinux. Una pagina de archivos por categoria seria algo asi https://paraisolinux.com/categorias. O sea una lista con post ordenados por categorias en wordpress.

No encontre plugins que lo hicieran y por eso me di a la tarea de buscar como hacerlo con codigo. Son varios pasos pero sencillos para aquellos que ya han usado templates en wordpress. Y los que no aprovechen para practicar.

Paso 1: Crear un archivo llamado archivocat.php en tu pc

Paso 2: dentro del archivo colocar el siguiente codigo para que sea identificado como un template por wordpress.

<?php
/*
Template name: Indice por Categoria
*/
?>

Paso 3: abrir el archivo single.php de tu theme actual y copiar la estructura basica del mismo, esa estructura copiarla a continuacion del lo que ya teniamos en el archivocat.php. En mi caso y en la mayoria de los casos queda algo asi:

<?php get_header(); ?>
<div id="content">
<div <?php post_class('post'); ?>>
<div class="post-title">
<h1 class="title"><?php the_title(); ?></h1>
<div class="clear"></div>
</div>
<div class="entry">

<!-- AQUI COLOCAMOS EL CODIGO IMPORTANTE-->

</div>
</div>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Paso 4: Colocar el siguiente codigo en donde dice AQUI COLOCAMOS EL CODIGO IMPORTANTE

<?php $cats = get_categories("hierarchical=0"); ?>

				<?php if($cats != NULL) { ?>
				<ul>
					<?php foreach ($cats as $cat) { ?>
						<li>
							<?php if($cat != NULL) { $base_url = get_bloginfo('home') . "/category/" . $cat->slug; ?>
							<h3><a href="<?php echo $base_url?>"><?php echo $cat->cat_name?></a></h3>
							<?php } ?>

							<?php // Show category description if ($cat->category_description != NULL) ?>
							<p><?php echo $cat->category_description ?></p>

							<?php $myposts = get_posts("numberposts=-1&category=$cat->cat_ID"); ?>
							<ul>
							<?php foreach($myposts as $post) : ?>
								<li><?php the_time('M d') ?>. <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
							<?php endforeach; ?>
							</ul>
						</li>
					<?php } ?>
				</ul>
				<?php } ?>

Paso 5: El codigo anterior muestra todos los post por cada categoria. Si quieren mostrar solo 10 post por categoria deben cambiar la linea que dice

<?php $myposts = get_posts("numberposts=-1&category=$cat->cat_ID"); ?> 

por

<?php $myposts = get_posts("numberposts=10&category=$cat->cat_ID"); ?> 

Paso 6: Subir el archivo a la carpeta del theme de su blog.

Paso 7: Crear una nueva pagina en su blog y en la parte derecha donde dice ‘Plantilla’ elijan ‘Indice por Categoria’. Publiquen la pagina.

Eso es todo, con eso ya deberian tener una pagina con sus post ordenados por categoria. Si notan que la pagina tiene algun problema en su visualizacion como que falta algun sidebar o algo asi entonces es porque no han hecho correctamente el paso 3. Cualquier duda me preguntan

Actualizacion: les dejo un archivocat.php para que se guien.

perro

Ingeniero en Informática. Programador en PHP y Angular. Lo que mas adoro en el mundo es el conocimiento. Y el anime....y Japón...y el running...y bloguear claro y algunas otras cientos de cosas. Sigo buscando la manera de hacer mi primer millón.