私はカスタム検索をまとめるためにquery_posts
と一緒に次のコードを使っています:
$args = array(
'post_type' => 'species',
'meta_query' => $meta_query,
'tax_query' => $tax_query
);
$meta_query
は、次のようないくつかのコードでまとめられています。
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;
}
これは完璧に機能し、/advanced-search/
にアクセスしてアクセスできます。
しかし、私のページ付けはしません。 Next Entries
をクリックすると、URLは/advanced-search/page/2/
に変わりますが、単にAdvanced Searchフォームを再度開くだけです。
これは$_POST
を使っているためだと思います。 $_POST
でページネーションを使う方法はありますか、それとも私のコードをget_query_var
か何かに変更する必要がありますか?
EDIT
私の書き換え規則は正しいようです:/advanced-search/page/2/
はMonkeymanのRewrite Analyzerプラグインにpagename: advanced-search, paged: 2
を表示します。
さらに編集する
私のadvanced-search.php
ページは、検索フォームと結果のどちらを表示するかを決定するために次のコードを使用します。改ページを使用する場合は、これを書き直す必要があると思います。
<?php if ( isset( $_POST["act"] ) && $_POST["act"] == "s" ) : ?>
私がこれを書き直すことにどのように取り組むことができるかに関して誰かが何か考えを持っていますか? GET
ではなくPOST
を使用する必要があると思いますか?
前もって感謝します、
結局、これはページ付けとは無関係です。
フォーム全体をGET
と$_REQUEST
ではなくPOST
メソッドと$_POST
変数に変更する必要がありました。
これをあなたのクエリに追加:
'paged' => get_query_var('paged')
こんな感じで:
$args = array(
'post_type' => 'species',
'meta_query' => $meta_query,
'tax_query' => $tax_query,
'paged' => get_query_var('paged')
);
トリックをする必要があります.. Wp - pageNaviを使用して?追加することを忘れないでください
ループ終了直後のwp-pagenaviタグ
<div class="navigation"><?php wp_pagenavi(); ?></div>
。
お役に立てれば ;)
歓声、サジベ。
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;
}