J'utilise le code suivant avec query_posts
pour créer une recherche personnalisée:
$args = array(
'post_type' => 'species',
'meta_query' => $meta_query,
'tax_query' => $tax_query
);
$meta_query
est mis en place avec quelques segments de code comme ceci:
if (!empty($_POST["s_aquarium_H"])) {
$val = convert_values('size', $size, $_POST["s_aquarium_H"]);
$aquarium_H = array(
'key' => 'aquarium_H',
'value' => $val,
'type' => 'numeric',
'compare' => '<='
);
$meta_query[] = $aquarium_H;
}
Cela fonctionne parfaitement bien et est accessible en visitant /advanced-search/
.
Cependant, ma pagination ne fonctionne pas. Lorsque vous cliquez sur Next Entries
, l'URL devient /advanced-search/page/2/
mais vous rouvrez simplement le formulaire de recherche avancée.
J'imagine que c'est parce que j'utilise $_POST
. Existe-t-il un moyen d'utiliser la pagination avec $_POST
ou dois-je changer mon code en get_query_var
ou quelque chose de ce genre?
MODIFIER
Mes règles de réécriture semblent être correctes: /advanced-search/page/2/
affiche pagename: advanced-search, paged: 2
dans le plug-in Rewrite Analyzer de Monkeyman.
SUPPLEMENT EDIT
Ma page advanced-search.php
utilise le code suivant pour déterminer si elle doit afficher le formulaire de recherche ou les résultats. Je suppose que cela nécessite une réécriture si je veux utiliser la pagination:
<?php if ( isset( $_POST["act"] ) && $_POST["act"] == "s" ) : ?>
Quelqu'un a-t-il une idée de la manière dont je pourrais procéder pour réécrire cela? Je suppose que GET
au lieu de POST
doit être utilisé?
Merci d'avance,
Au final, cela n’a rien à voir avec la pagination - en tant que telle.
J'avais besoin de changer tout mon formulaire en méthode GET
et en variables $_REQUEST
plutôt qu'en POST
et $_POST
.
Ajoutez ceci à votre requête:
'paged' => get_query_var('paged')
Comme suit:
$args = array(
'post_type' => 'species',
'meta_query' => $meta_query,
'tax_query' => $tax_query,
'paged' => get_query_var('paged')
);
Devrait faire le tour .. Utiliser Wp-pageNavi? n'oubliez pas d'ajouter le
La balise wp-pagenavi juste après la fin de la boucle
<div class="navigation"><?php wp_pagenavi(); ?></div>
.
J'espère que cela t'aides ;)
Salut, Sagive.
if (!empty($_REQUEST["s_aquarium_H"])) {
$_GET["s_aquarium_H"] = $_REQUEST["s_aquarium_H"];
$val = convert_values('size', $size, $_REQUEST["s_aquarium_H"]);
$aquarium_H = array(
'key' => 'aquarium_H',
'value' => $val,
'type' => 'numeric',
'compare' => '<='
);
$meta_query[] = $aquarium_H;
}