Como hacer una pagina de archivos por categoria en 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.

39
Comenta!

avatar
Fabricio

Lo voy a probar un día de estos!

yo tengo una página dentro del blog «Indice de tutoriales» y es un garrón actualizarla a mano :lol:

teatroycyne
teatroycyne

para aser noticiasi versidad de cosa

La vida Linux

Después de un tiempo, intenté una vez más sin éxito. La página me aparece en blanco y el listado en cualquier parte del blog, footer, cuerpo de la entrada, bajo el header; sí, ya se que indicaste debajo de , pero cuando lo coloco ahí no aparece nada. :help:

SnocK
SnocK

:up: Justo lo que estaba buscando , gracias.

La vida Linux

Bien, sólo quiero acotar que desde hace un tiempo anda perfecto el truco en mi blog. Luego de una manito de su creador. xD! :P

trackback

[…] hacerlo he seguido el tutorial de Paraiso Linux, Como hacer una página de archivos por categorías en WordPress, con algunas […]

Javier

Gracias amigo, me salio bien y al primer intento!
:up: :up: :up:

oliver
oliver

Hola, me sirvio mucho, quisiera saber si se puede modificar para solo mostrar algunas categorias, no todas las de mi blog, solo las que yo le indique

gracias

Bruno

Che genial es lo que estaba buscando, pero ahora lo que quisiera saber es si se puede colocar solo las entradas de la categoria que yo deseo¿?
y otra cosa es si se puede hacer para que la entrada se vea o es solo se ven tipo los titulos¿?
desde ya gracias
Bruno

Mirlitón

Saludos y muchas gracias. Nosotros hemos adaptado el código y hemos extraído una página para cada categoría (en nuestro caso las categorías se corresponden con personajes de nuestros cuentos). Luego hemos personalizado la presentación. Pero sin tu código no hubiéramos sabido como hacerlo (por si quieres ver como lo hemos implementado, encontrarás un enlace a estas páginas —plantillas en realidad— entrando en cada perfil, en la cabecera de nuestra bitácora).

Quedamos muy agradecidos.

Finalopez
Finalopez

 Hola misliton eso mismo es lo que quiero hacer yo pero no se como si pudieras ayudarme te lo agradeceria enormemente,puedes escribirme a finalopez@live.com

poteirard

Saludos,

Es la primera vez que entro en este blog y creo que lo añadiré a favoritos, es muuuy interessante y estoy aprendiendo mucho.

Yo no tengo ni idea de PHP sé algo de Java debido a los estudios (programacion informatica)….

El caso es que como mi blog es de música (CD’s concretamente), me gustaría poner al lado de cada post ordenado una imagen con la portada del CD que incluye el post.

Supongo que seria modificando la linia:

. <a href="»>

Però como ya te he dicho, no tengo ni idea de PHP.

Alguna idea?

Hanmdq
Hanmdq

Excelente idea, y para filtrar algunas categorias cambie esta linea:

por esta:

Gracias!

Hanmdq
Hanmdq

Excelente idea, y para filtrar algunas categorias cambie esta linea:

«»

por esta:

«»

Gracias!

Luisito1420
Luisito1420

y si uno quiere que se pagina no solo que se muestren 10 si no que se muestren 10 y su paginador

Celvin Turcios

amigo cuando te refieres a la estructura del archivo single.php  explicame bien si ya abri el archivo pero no tengo ni idea de lo  de hacer el paso 3. no se nada de php 
gracias espero una mejor explicacion

Anonymous
Anonymous

Es imposible explicarlo mejor que en el post. Prueba copiando exactamente lo mismo que tengo yo

Consuelo
Consuelo

Que tal se posicionan este tipo de paginas en buscadores?

sefsinalas

No se…pero sirven para crear una especie de indice interno

trackback

[…] Mostrar mas informacion. Cuando Muestran el mensaje de ‘exito’ podrian aprovechar y mostrar algo mas para mantener a la visita dando vueltas por el blog. Por ejemplo pueden aprovechar y mostrar algunos post destacados o los mas comentados. Pueden usar algo del codigo que les mostre cuando hice el post de crear pagina de archivos para wordpress. […]

Luciana
Luciana

Es mucho mas sencillo que toda esa programación. Lo que hay que hacer es lo siguiente: 1- Creas todas las paginas y categorías que queremos 2- En el administrador de nuestro wordpress ir a Apariencia / Menús 3- En la columna de la derecha elegimos crear nuevo menu y le ponemos el nombre «Principal» 4-En la columna de la izquierda tildamos las páginas y categorias que queremos que sean botones de nuestro menu 5-En la columna de la derecha donde creamos nuestro menú, ordenamos las pags y categorias en el orden que queremos que aparezcan 6- En la columna de… Leer mas »

Alex
Alex

Hola, espectacular el artículo, me ha quedado perfecto, me podrías indicar por favor que tengo que modificar para que las subcategorias queden dentro de las categorias en la página de archivos y no como categorias individuales. Muchas gracias

sefsinalas

Debes darle estilos mediante CSS a los ul. Por ejemplo con un padding-left: 30px;

Alex
Alex

Hola Sefsinales, no me refiero a la ubicación en medidas, sino a que si tengo una subcategoria «B» dentro de una categoría » A» cuando aparezcan todos los enlaces en la página de archivo, aparezca de la siguiente manera…..
– A
– D
– B
– C

y no aparezca

– A
– B
– C
– D

como si fueran categorias diferentes o sea se duplican las categorias y las subcategorias.

Espero que me haya expresado bien

Alex
Alex

Mil disculpas, en el anterior comentario no me han aparecido los espacios que he dejado entre las letras, quise decir que la subcategoria «D» está dentro de la categoria A y la subcategoria «C» está dentro de la categoría «B» y quiero que la página permite diferencias las categorias y las subcategorias. Es posible

sefsinalas

Fijate en mi codigo. Donde dice hierarchical=0 cambia el 0 por un 1.
Lo que pasa es que no estoy seguro que eso funcione, pero nada pierdes con probar

Alex
Alex

Hola Sefsinalas, he realizado el cambio pero nada, sigue todo igual, he intentado realizar cambios pero no doy con la combinación. Solo deseo que aparezcan diferenciadas las categorias y las subcategorias. Me sugieres alguna otra opción? Saludos

sefsinalas

Entonces ya no se :P

Alex
Alex

Gracias por tu tiempo!!! … seguiré probando!!

sefsinalas

Creo que tienes que cambiar la linea de get_categories…mas info aqui:

codex.wordpress.org/Function_Reference/get_categories

Alex
Alex

Ante todo muchas gracias Sefsinalas, pero he entrado en la página que me has facilitado pero no encuentro la linea a la que te refieres, puedes indicarme cual es y donde la tengo que cambiar? … muchas gracias!!!

Plewaynar
Plewaynar

Muchas gracias por el código y la explicación que facilitas, me ha servido de mucho para mi blog.