web-dev-qa-db-fra.com

Catégories Modèle Assistance

J'ai trouvé un didacticiel en ligne pour la création d'un modèle de catégories personnalisé pour mes publications archivées dans une catégorie particulière. Cependant, ceci vise un identifiant de catégorie spécifique (voir ci-dessous), est-il possible de créer un modèle qui cible tout plutôt qu'un identifiant spécifique?

<?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 -->

Je pensais peut-être que ce qui suit pourrait être changé:

<?php $archive_query = new WP_Query('cat=7&showposts=1000');
2
Kirsty Marks

Supprimez le paramètre cat de votre requête et nommez votre fichier de modèle category.php

À partir du Codex WordPress sur Hiérarchie des modèles ;

 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

Les éléments ci-dessus indiquent l'ordre dans lequel WordPress recherche les fichiers de modèle. S'il en trouve un qui existe dans cette hiérarchie, il sera utilisé comme modèle pour cette condition.

Donc, dans ce cas, vous souhaitez utiliser category.php pour créer un modèle de catégorie global.

Bien sûr, vous pouvez faire preuve de créativité et faire toutes sortes de choses pour répondre à toutes sortes de conditions, mais si votre exigence de base est celle que vous décrivez, alors ce qui précède suffit.

Modifier

Remplacez ceci:

<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>

...avec ça:

<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>
3
userabuser

Je pensais que je contribuerais ma réponse à ce qui précède. J'ai codé ceci pour afficher mes catégories avec une date, la personne qui l'a affichée et l'heure à laquelle elle a été affichée, avec un titre principal pour afficher le titre de la catégorie en question.

S'il vous plaît voir le code et la capture d'écran de ce que cela produit, j'espère que cela s'avère utile :)

<?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(); ?>

Malheureusement, je ne peux pas capturer en raison du manque de réputation ici, cependant , je vais vous montrer mon site afin que vous puissiez voir cela en action .

1
Kirsty Marks