web-dev-qa-db-fra.com

Comment faire en sorte que le modèle de catégorie affiche des publications complètes au lieu de publications partielles?

J'utilise Wordpress 3.0.1 avec le thème Twenty Ten. J'essaie de changer la façon dont les articles de la vue Catégorie sont affichés (c'est-à-dire en allant dans une URL telle que mywebsite.com/category/mycategory). Actuellement, les articles dans la vue des catégories affichent uniquement la première partie d'un article, mais j'aimerais changer cela afin que tout soit affiché.

Dans le fichier Modèle de catégorie (category.php), quelques lignes de code donnent l'impression qu'elles sont responsables de la génération des données de catégorie:

/* Run the loop for the category page to output the posts.
 * If you want to overload this in a child theme then include a file
 * called loop-category.php and that will be used instead.
 */
get_template_part( 'loop', 'category' );
?>

Comme les commentaires mentionnent la création d’un thème enfant, j’ai suivi la procédure ces instructions (via cette réponse ) pour configurer un thème enfant afin que je puisse ajouter ma fonctionnalité personnalisée.

D'après les commentaires, je vois dans le commentaire que je suis censé créer un fichier appelé loop-category.php avec mon implémentation personnalisée, mais je ne sais pas quel code je dois mettre dans ce fichier. Que dois-je ajouter à loop-category.php pour que les vues de catégorie s'affichent avec les articles de blog complets?

NOTE: Bien que j'utilise Wordpress depuis un certain temps, ceci est ma première plongée dans la personnalisation du thème. Toute aide serait très appréciée.

1
Ben McCormack

@Ben,

Si vous regardez la ligne 132 de loop.php dans Twentyten, vous trouverez l’instruction conditionnelle qui indique à WordPress de n’afficher que the_excerpt dans les archives de la catégorie. Juste en dessous de celui-ci, après <?php else : ?>, sont affichées toutes les publications qui ne figurent pas sur une page d'archive, dans la catégorie réservée ou dans la catégorie galerie. (Les catégories apart et gallery sont ciblées au début de loop.php)

<?php if ( is_archive() || is_search() ) : // Only display excerpts for archives and search. ?>
            <div class="entry-summary">
                <?php the_excerpt(); ?>
            </div><!-- .entry-summary -->
    <?php else : ?>
            <div class="entry-content">
                <?php the_content( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentyten' ) ); ?>
                <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'twentyten' ), 'after' => '</div>' ) ); ?>
            </div><!-- .entry-content -->
    <?php endif; ?>

Dans votre fichier loop-category.php, la chose la plus simple à faire serait de copier et coller tout le fichier loop.php et de changer la section de code ci-dessus en:

<?php if ( is_search() ) : // Only display excerpts for archives and search. ?>
            <div class="entry-summary">
                <?php the_excerpt(); ?>
            </div><!-- .entry-summary -->
    <?php else : ?>
            <div class="entry-content">
                <?php the_content( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentyten' ) ); ?>
                <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'twentyten' ), 'after' => '</div>' ) ); ?>
            </div><!-- .entry-content -->
    <?php endif; ?>

Vous remarquerez que nous n'avons supprimé que is_archive de l'instruction conditionnelle. Les archives de la catégorie seront donc affichées à l'aide du code après l'instruction else qui contient the_content au lieu de the_excerpt.

7
Chris_O

Je viens de supprimer la deuxième instance de "is_archive () ||" du fichier loop.php et chaque article au complet apparaît sur la page category/catslug. Je n'ai pas eu à créer un fichier loop-category.php. Je n'aurais pas pu le faire sans les instructions de Chris_O. Merci Chris !!

1
thepete