WordPress : Modifier la requête wp en fonction de la sélection de l’année
Introduction
J’ai un blog sur lequel je montre le dernier message des 365 derniers jours et je ne montre que 100 messages. J’ai également la possibilité pour l’utilisateur de sélectionner l’année (c’est ce sur quoi je travaille actuellement).
Question
Comment puis-je l’avoir ainsi lorsqu’un utilisateur choisit une année différente (dans la sélection), la requête est définie pour afficher les publications de cette année et supprimer la limite de 100 publications et montrer qu’il s’agit de ma page de blog.
Ma requête
<?php
// gets info
$current_category = get_queried_object('post');
//$current_user =get_the_author_posts();
// the query
$wpb_all_query = new WP_Query(array(
'post_type' => 'post',
'post_status' => 'publish',
'cat' => $current_category->term_id,
// 'author' => $current_user,
// 'tag' => '',
'posts_per_page' => 100,
'date_query' => array(
array(
// 'year' => '2019',
'after' => '-365 days',
'column' => 'post_date',
)
)
));
Ma sélection (année)
<select style="top: -4px;"
class=" btn-link col-12"
name="archive-dropdown"
onChange='document.location.href=this.options[this.selectedIndex].value;'>
<?php wp_get_archives('type=yearly&format=option'); ?>
</select>
Ma page de blog
<?php
require "settings.php";
if ($wpb_all_query->have_posts())
:while ($wpb_all_query->have_posts())
:$wpb_all_query->the_post();
?>
content
<?php endwhile; ?>
<?php endif; ?>
J’essayais une instruction dans la requête mais je ne voyais pas comment sélectionner l’année, mais si je définissais l’année sur une variable en fonction de l’option, c’est peut-être mieux>?
Solution n°1 trouvée
Cela vous donnera tous les messages (pas de limite à 100), pour l’année 1999. Changez $yearToLookFor
pour l’année dont vous avez besoin.
<?php
//here is from a $_GET parameter
$yearToLookFor = $_GET['year'];
// gets info
$current_category = get_queried_object('post');
//$current_user =get_the_author_posts();
// the query
$wpb_all_query = new WP_Query(array(
'post_type' => 'post',
'post_status' => 'publish',
'cat' => $current_category->term_id,
// 'author' => $current_user,
// 'tag' => '',
'date_query' => array(
array(
'year' => $yearToLookFor,
)
)
));
Dans cet exemple, l’année a été extraite d’une requête d’URL, comme ceci : https://votrewebiste.zyx/?année=1999
0 commentaire