WordPress Filtrer les messages par tags
J’essaie de filtrer les messages par tags.
Les publications avec tous les tags sont disponibles par défaut. Mais un utilisateur peut augmenter et diminuer le nombre de balises dans le filtre.
Quelle est la meilleure façon de poster un fichier de cette façon ? Dois-je compter toutes les balises omises et travailler avec des arguments d’URL ou existe-t-il un moyen plus simple ?
$args =
array(
'tag' => $tags_arr, //array('sport', 'art', 'news')
);
$posts_by_tags = get_posts( $args );
foreach ( $posts_by_tags as $post_by_tags ){
echo '<li>' . $post_by_tags->post_title . '</li>';
}
UPD :
J’ai décidé de faire des liens comme:
<ul>
<li><a href="?tags=apples,oranges">Bananas</a></li>
<li><a href="?tags=bananas,oranges">Apples</a></li>
<li><a href="?tags=apples,bananas">Oranges</a></li>
</ul>
PHP :
$tags = array();
foreach ( get_tags() as $before_tag ) {
$tags[] = $before_tag->name;
}
if ( isset( $_REQUEST['tags'] ) && $_REQUEST['tags'] != '' && $_REQUEST['tags'] != null ) {
$filter_tags = explode( ',', $_REQUEST['tags'] );
} else {
$filter_tags = $tags;
}
$args =
array(
'tag' => $filter_tags,
);
$posts_by_tags = get_posts( $args );
$each_sixth = 1;
foreach ( $posts_by_tags as $post_by_tags ){
// do stuff
echo get_the_title( $post_by_tags->ID );
}
Solution n°1 trouvée
Essaye ça,
$query=new WP_Query(array('posts_per_page=-1', array('tag' => array($tags_arr))));
(OU)
$args=array('posts_per_page' => 5, 'tag' => $tags_arr);
$wp_query = new WP_Query( $args );
Après avoir mis en boucle vos messages…
Enfin, réinitialisez les données de publication :
wp_reset_postdata();
0 commentaire