web-dev-qa-db-fra.com

Pourquoi ma boucle personnalisée ne filtre-t-elle pas correctement ni ne pagine-t-elle?

J'espère que quelqu'un pourra m'aider, car je lutte depuis quelques jours.

J'ai créé un formulaire sur une page qui permet aux utilisateurs de filtrer les événements par taxonomies personnalisées, telles que le type, la période et la durée. Celles-ci fonctionnent individuellement, c'est-à-dire que le filtre affiche toutes les publications avec Type = x ou Period = y mais non combinées. Quelqu'un peut-il voir pourquoi?

Voici mon code dans Pastie

J'essaie également de comprendre comment paginer mes résultats pour ma boucle personnalisée, mais je ne comprends pas pourquoi cela ne fonctionne pas?

Toute aide massivement appréciée.

Merci

osu

MODIFIER

Ok, pour une raison quelconque, je ne peux pas utiliser la méthode array pour transmettre mes variables à query_posts () et je suppose que c’est parce que, avec le plugin Query Multiple Taxonomies que j’ai besoin d’installer pour que cela fonctionne, cela ne fonctionne qu'avec le méthode 'post_type = event & fttype = daily' etc.

Voici mon nouveau code qui fonctionne:

http://www.pastie.org/1586564

CEPENDANT, même si la pagination fonctionne lors de votre première visite sur la page, une fois le formulaire soumis, la pagination cesse de fonctionner. Donc, presque presque là, mais j'ai besoin d'aide avec la dernière partie si quelqu'un peut être si gentil?

Merci

osu

2
Osu

Pour corriger vos "filtres de requête" changer

// Set defaults in nothing entered:
if(!isset($_POST['showfilter'])) {
    $ft_args = 'post_type=ftevent&';
    // $ft_args .= 'posts_per_page=1&'; SHOW ALL
    $ft_args .= 'paged=' . $paged . '&';
    $ft_args .= $osu_datecompare . '&';
    $ft_args .= 'orderby=meta_value&order=ASC';
} else {
    // Filter query with multiple taxonomies and paginate results
    $ft_args = 'post_type=ftevent&';
    $ft_args .= 'posts_per_page=2&';
    $ft_args .= 'paged=' . $paged . '&';
    $ft_args .= 'fttype=' . $ft_t . '&';
    $ft_args .= 'ftperiod=' . $ft_p . '&';
    $ft_args .= 'ftduration=' . $ft_d . '&';
    $ft_args .= $osu_datecompare . '&';
    $ft_args .= 'orderby=meta_value&order=ASC';
}

à

// Filter query with multiple taxonomies and paginate results
    $ft_args = array(
    'post_type' => 'ftevent',
    'posts_per_page' => 2,
    'paged=' => $paged ,
    'meta_key' => 'StartEventDate',
    'meta_compare' => '>=',
    'meta_value' => $todaysDate,
    'orderby' => 'meta_value',
    'order' => 'ASC');
    if (isset($ft_t) && ($ft_t != '')){$ft_args['fttype'] = $ft_t;}
    if (isset($ft_p) && ($ft_p != '')){$ft_args['ftperiod'] = $ft_p;}
    if (isset($ft_d) && ($ft_d != '')){$ft_args['ftduration'] = $ft_d;}

et pour que cela fonctionne avant la version 3.1, vous devez installer Interroger plusieurs taxonomies .

J'espère que cela t'aides.

1
Bainternet