web-dev-qa-db-fra.com

Comment puis-je trier les messages avec plusieurs pages

J'utilise un menu déroulant pour trier les articles par titre, par valeur_méta, etc. Cependant, la fonctionnalité de tri ne fonctionne que sur la première page. La deuxième page affiche l'ordre par défaut plutôt que de continuer l'ordre de la page 1. J'utilise wp-pagenavi pour la pagination. Des idées ce qui causerait cette erreur?

Voici un lien vers le code:

http://Pastebin.com/AwSmMPtM

Merci beaucoup.

1
John Hall

Vous soumettez initialement une demande POST via un formulaire avec les paramètres de tri. Lorsque vous cliquez sur des liens vers des pages supplémentaires, vous envoyez simplement une demande GET pour la page suivante sans ces vars POST d'origine, afin qu'ils ne soient pas reportés aux pages supplémentaires et ne soient pas capturés par votre if(isset($_REQUEST['sort'])). La manière la plus simple de le gérer consiste probablement à passer le paramètre de tri sous forme de chaîne de requête ajoutée à l'URL, puis à rechercher cette chaîne de requête et à l'ajouter aux URL des pages supplémentaires.

2
Milo

Vous définissez $paged après la condition if qui l'utilise.

// more uses of $paged that way ^^^^
else
        $order = array(
        'cat' => 30,
        'orderby' => 'title',
        'order' => 'ASC',
        'paged' => $paged
);

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

Mettez cette ligne $paged = avant ces conditions et je parie que cela fait une différence.

1
s_ha_dum