web-dev-qa-db-ja.com

カスタムループが正しくフィルタリングもページ付けも行われないのはなぜですか。

私は数日間苦労してきたように誰かがこれで私を助けることができると思います。

ユーザーがカスタム分類法の種類、期間、および期間でイベントをフィルター処理できるフォームをページ上に作成しました。これらは個別に機能しています。つまり、フィルタはType = xまたはPeriod = yのいずれかで、結合されていないすべての投稿を表示します。誰もがその理由を見ることができますか?

これがPastieの私のコードです

私はまた私のカスタムループのために私の結果をページ分割する方法を見つけようとしていますが、なぜそれがうまくいかないのかわかりませんか?

非常に感謝して任意の助け。

ありがとう

おす

編集

さて、何らかの理由で、私は変数をquery_posts()に渡すために配列メソッドを使用することができません。メソッド 'post_type = event&fttype = daily'など.

これが私の新しいコードです。

http://www.pastie.org/1586564

ただし、最初にページにアクセスしたときにページ付けが機能していても、フォームを送信した後は、ページ付けは機能しなくなります。それで、ほとんどそこにほぼあります、しかし、誰かがとても親切にできるなら、私は最後の部分でいくらかの助けが必要ですか?

ありがとう

おす

2
Osu

「クエリフィルタ」の変更を修正する

// 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;}

そしてそれをバージョン3.1より前に動作させるためには、 複数の分類法の照会 をインストールする必要があります。

お役に立てれば。

1
Bainternet