Asistencia de plantilla de categorías

2

He encontrado un tutorial en línea para crear una plantilla de categorías personalizada para mis publicaciones archivadas dentro de una categoría en particular. Sin embargo, esto apunta a una ID de categoría específica (ver más abajo), ¿existe alguna forma de crear una plantilla que apunte a todas las ID en lugar de a una ID específica?

<?php
/*
Template Name: Category-Tutorials
 * The template for displaying Archive pages.
 *
 * Used to display archive-type pages if nothing more specific matches a query.
 * For example, puts together date-based pages if no date.php file exists.
 *
 * Learn more: http://codex.wordpress.org/Template_Hierarchy
 *
 * @package WordPress
 * @subpackage Twenty_Eleven
 * @since Twenty Eleven 1.0
 */

get_header(); ?>

    <section id="primary">
        <div id="content" role="main">

<header class="page-header">
                <h1 class="page-title">
                    <?php if ( is_day() ) : ?>
                        <?php printf( __( 'Daily Archives: %s', 'twentyeleven' ), '<span>' . get_the_date() . '</span>' ); ?>
                    <?php elseif ( is_month() ) : ?>
                        <?php printf( __( 'Monthly Archives: %s', 'twentyeleven' ), '<span>' . get_the_date( 'F Y' ) . '</span>' ); ?>
                    <?php elseif ( is_year() ) : ?>
                        <?php printf( __( 'Yearly Archives: %s', 'twentyeleven' ), '<span>' . get_the_date( 'Y' ) . '</span>' ); ?>
                    <?php else : ?>
                        <?php _e( 'Tutorials', 'twentyeleven' ); ?>
                    <?php endif; ?>
                </h1>
            </header>

    <ul class="category-7">
        <?php $archive_query = new WP_Query('cat=7&showposts=1000');
        while ($archive_query->have_posts()) : $archive_query->the_post(); ?>
    <li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></li>
        <?php endwhile; ?>
    </ul>

        </div><!-- #content -->
    </section><!-- #primary -->

Estaba pensando que quizás se podría cambiar lo siguiente:

<?php $archive_query = new WP_Query('cat=7&showposts=1000');
    
pregunta Kirsty Marks 19.12.2012 - 10:51

2 respuestas

3

Elimine el parámetro cat de su consulta y nombre su archivo de plantilla category.php

Del Códice de WordPress en Jerarquía de plantillas ;

 1. category-{slug}.php - If the category's slug were news, WordPress would look for category-news.php
 2. category-{id}.php - If the category's ID were 6, WordPress would look for category-6.php
 3. category.php
 4. archive.php
 5. index.php

Lo anterior denota el orden en el que WordPress busca los archivos de plantilla y, si encuentra uno que existe en esa jerarquía, se usará como la plantilla para dicha condición.

Entonces, en este caso, desea usar category.php para crear una plantilla de categoría global.

Por supuesto, puede ser creativo y hacer todo tipo de cosas para cumplir con todo tipo de condiciones, pero si su requisito básico es el que describe, entonces lo anterior será suficiente.

Editar

Reemplaza esto:

<ul class="category-7">
    <?php $archive_query = new WP_Query('cat=7&showposts=1000');
    while ($archive_query->have_posts()) : $archive_query->the_post(); ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></li>
    <?php endwhile; ?>
</ul>

... con esto:

<ul class="category-7">
    <?php while ( have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></li>
    <?php endwhile; ?>
</ul>
    
respondido por el userabuser 19.12.2012 - 10:57
1

Pensé que contribuiría mi respuesta a lo anterior. He codificado esto para mostrar mis categorías con una fecha, la persona que lo publicó y la hora en que se publicó, con un título principal para mostrar el título de la categoría en cuestión.

Por favor, vea el código y la captura de pantalla de lo que esto produce, espero que esto resulte útil :)

<?php get_header(); ?>
<div id="maincontentwrap" role="main">
<h1 class="page-title"><?php
printf( __( 'Category Archives: %s', 'D-Theme' ), '<span>' . single_cat_title( '', false ) . '</span>' );
                ?></h1>
<div class="pagedivider"></div>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<?php the_content(); ?>
Written by <?php the_author_posts_link() ?> in <?php the_category(); ?> at <?php the_time('H:h a'); ?> 
<div class="pagedivider"></div>
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>
</div>
<?php get_footer(); ?>

Desafortunadamente, no puedo hacer una captura de pantalla debido a la falta de reputación aquí. Sin embargo, le mostraré mi sitio para que pueda ver esto en acción .

    
respondido por el Kirsty Marks 19.12.2012 - 19:51

Lea otras preguntas en las etiquetas