web-dev-qa-db-fra.com

Création de pages d'archives pour les catégories d'enfants

Exemple:

iD du chat vidéo = 4 ID de la catégorie enfant chat = 7,8,9 ID du nouveau chat = 5 ID de la catégorie enfant Cat = 11,12,13

Je veux afficher les catégories choisies (comme la vidéo et les actualités) dans les différents archive.php?

Est-ce possible merci.

(désolé pour mon mauvais eng)

Merci pour Chris S mais ce n'est pas ce que je veux faire.

  <?php
$catPosts = new WP_Query();
$catPosts->query( array( 'category__and' => array(5,11,12,13), 'posts_per_page' => 5, 'orderby' => 'date', 'order' => 'DESC' ) );
  while ($catPosts->have_posts()) : $catPosts->the_post(); ?>
  <h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>
  <div class="meta">
   By <?php the_author() ?>
  </div>
<div class="content">
  <?php the_excerpt(); ?>
</div>

Quand j’ai écrit l’identifiant de la catégorie parent, je ne veux pas écrire l’identifiant de sa catégorie enfant. Lorsque je choisis l'ID de la catégorie parent, le système doit identifier ses ID de la catégorie enfant dans la même page d'archive.

2
Fatih Toprak

Créez 2 pages category-news.php & category-video.php & mettez-y ce code. Personnalisez ensuite le balisage à votre guise

<?php
$children = get_categories('child_of'=>get_query_var('cat'));
$cat = array(get_query_var('cat'));
foreach($children as $child)
    $cat[] = $child->term_id;
$catPosts = new WP_Query( array( 'category__in' => $cat, 'posts_per_page' => 5, 'orderby' => 'date', 'order' => 'DESC' ) );
  while ($catPosts->have_posts()) : $catPosts->the_post(); ?>
  <h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>
  <div class="meta">
   By <?php the_author() ?>
  </div>
<div class="content">
  <?php the_excerpt(); ?>
</div>
0
Mridul Aggarwal

Examiner la hiérarchie des modèles dans WordPress pourrait être utile. WordPress vous permet d'utiliser différents modèles pour différentes catégories en fonction de la catégorie slug (category-{slug}.php) ou de l'ID de la catégorie (category-{id}.php).

En ce qui concerne différents types de publication, vous pouvez faire archive-{post_type}.php.

Pour l'essentiel, vous pouvez simplement copier archive.php et le renommer en category-{slug}.php, category-{id}.php ou archive-{post_type}.php (selon ce qui vous convient le mieux), puis modifier le code existant dans le modèle en fonction de vos besoins. Juste une pensée.

1
its_me

Donc, vous savez déjà que vous devez créer un modèle archive-category.php pour chaque catégorie. Dans chaque modèle, vous appelez une requête personnalisée pour chacune de ces catégories et leurs catégories enfants. Par exemple:

<?php
$catPosts = new WP_Query();
$catPosts->query( array( 'category__in' => array(5), 'posts_per_page' => 5, 'orderby' => 'date', 'order' => 'DESC' ) );
  while ($catPosts->have_posts()) : $catPosts->the_post(); ?>
  <h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>
  <div class="meta">
   By <?php the_author() ?>
  </div>
<div class="content">
  <?php the_excerpt(); ?>
</div>

Celui-ci montre la catégorie "nouvelles" avec ses enfants inclus. Notez que vous pouvez placer n'importe lequel de vos propres balises pour générer le code HTML souhaité.

0
chris_s