Comment interroger les publications de catégories avec des tags spécifiques? Par exemple, si je visite " localhost/tag/tutorial ", la page d'archive affichera toutes les publications de toutes les catégories avec la balise tutorial.
Mais la vue serait séparée par catégorie. Par exemple:
Catégorie 1
Catégorie 2
NB: Les articles sont affichés dans chaque catégorie avec les mêmes tags.
J'ai un code qui montre les derniers messages dans chaque catégorie
<?php
$categories = get_categories();
foreach($categories as $category) { ?>
<div class="CategoryPost">
<h2><?php echo $category->name; ?></h2>
<ul>
<?php
$post_args = array(
'category' => $category->term_id,
'numberposts' => 9999,
'orderby'=> 'post_date',
'order' => 'ASC',
'post_type' => 'post'
);
$posts = get_posts($post_args);
foreach($posts as $post) { ?>
<li id="post-<?php the_ID(); ?>"><span><?php the_time('d M Y') ?></span> <i class="Seperate">»</i> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php } ?>
</ul>
</div>
<?php }
wp_reset_postdata(); ?>
Le code ci-dessus montrerait les derniers messages dans chaque catégorie avec ce look.
Nom de catégorie 1
Nom de catégorie 2
Nom de catégorie 3
Je voudrais faire une archive de balises qui fonctionne avec ce modèle et les messages seraient affichés dans chaque catégorie même les messages ont les mêmes balises.
Cela aidera à obtenir le post de catégorie sur la page d'archive de balises. Faites le moi savoir.
<?php
$current_tag = single_tag_title( $prefix = '', $display = false );
$categories = get_categories( array('hide_empty' => TRUE) );
foreach($categories as $category) { ?>
<?php
$args=array(
'posts_per_page' => -1,
'tag' => $current_tag,
'cat' => $category->term_id,
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
?>
<div class="CategoryPost">
<h2><?php echo "Tag: " . $current_tag; ?></h2>
<h2><?php echo "Category: " . $category->name; ?></h2>
<ul>
<?php
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>Post title: ' . get_the_title() . '</li>';
}
echo '</ul></ul></div><br>';
}
?>
<?php }
wp_reset_postdata();
S'il vous plaît essayer celui-ci et laissez-moi savoir si cela aide.
<?php
$categories = get_categories( array('hide_empty' => TRUE) );
foreach($categories as $category) { ?>
<?php
$args=array(
'posts_per_page' => -1,
'tag' => 'tutorial',
'cat' => $category->term_id,
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
?>
<div class="CategoryPost">
<h2><?php echo $category->name; ?></h2>
<ul>
<?php
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul></ul></div>';
}
?>
<?php }
wp_reset_postdata(); ?>
P.S. Je viens d'imprimer le titre de l'article. Si cela vous convient, veuillez ajouter d'autres paramètres à imprimer également.
Merci
EDIT: à afficher pour toutes les balises.
<?php
$tags_array = get_tags();
$categories = get_categories( array('hide_empty' => TRUE) );
foreach($tags_array as $tag){
foreach($categories as $category) { ?>
<?php
$args=array(
'posts_per_page' => -1,
'tag_id' => $tag->term_id,
'cat' => $category->term_id,
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
?>
<div class="CategoryPost">
<h2><?php echo "Tag: " . $tag->name; ?></h2>
<h2><?php echo "Category: " . $category->name; ?></h2>
<ul>
<?php
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>Post title: ' . get_the_title() . '</li>';
}
echo '</ul></ul></div><br>';
}
?>
<?php } }
wp_reset_postdata(); ?>
@GaroPpo Ici, il s'agit d'un code modifié que je vous ai suggéré. J'espère que cela vous remplira pleinement.
<?php
$tag_id = array(12, 13, 14);
$taxonomy = 'testimonial-category';
$postType = 'testimonial';
$terms = get_terms(['taxonomy' => $taxonomy, 'orderby' => 'term_id', 'hide_empty' => true]);
?> <div class="add-accordion"> <?php
foreach($terms as $term){
if($term->parent == 0){
echo '<h3>' . $term->name . '</h3>';
continue;
} $posts = get_posts(array('post_status' =>'publish','post_type' => $postType, 'tag__in' => $tag_id,
array(
'taxonomy' => $taxonomy,
'field' => 'term_id',
'terms' => $term->term_id,
),));
?>
<div class="add-accordion">
<h3><?php echo $term->name ?></h3>
<div class="add-accordion">
<?php foreach($posts as $post){ ?>
<h3><?php echo $post->post_title ?></h3>
<div class="">
<?php echo get_the_content($post->ID) ?>
</div>
<?php } ?>
</div>
</div>
<?php
}
?>