0

私は自分が手に入れたテーマに苦労しています。テーマは使用query_posts()され、ページ付けは以前は機能していました。現在、このページではページ付けが機能しておらず、最初のページの投稿が2番目のページに表示され続けます。つまり、URLは表示されますpage/2が、カテゴリの最初の投稿、つまりすべてのページの最初の4つの投稿が表示され続けます。

投稿を取得するために使用されるコードは次のとおりです。

global $current_category;

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

$args = "";
if ($current_category['post_type'] == "product") {          
    $args=array(
        'showposts' => 4,
        'paged' => $paged,
        'post_type' => 'product'
    );
} else {
    $args=array(
        'showposts' => 4,
        'category_name' => $current_category['name'],
        'paged' => $paged
    );
}
query_posts($args);

そして、これがループです:

if (have_posts()) : while (have_posts()) : the_post();
    <outputs code here>
endwhile;
else :
    <output no results code here>
endif;

if ( is_home() ) wp_reset_query();

さて、誰かが私を正しい方向に向けてくれませんか?

//アップデート:

私はすでにこのソリューションも試しましたが、これまでのところ、paged変数がクエリで更新されないことがわかります。

//更新2:

このページはカスタムで作成されており、[設定]-> [読み取り]でホームページとして設定すると、上記の動作が禁止されます。通常のページのままにして、ホームを最近の投稿として設定すると、ページネーションは正常に機能します。

4

2 に答える 2

0

テンプレートにカスタムクエリがある場合は、必ず'paged'パラメータを統合してください。

ページ付けパラメータ

これらのコーデックスページに目を通します。

既存のクエリパラメータを保持する

関連:ページネーション

于 2012-06-18T13:01:00.250 に答える
0

私はいくつかの非常に長い研究の後にこれを修正しました。私のコードは次のようになります。

global $current_category, $paged;

if ( get_query_var('paged') ) {
    $paged = get_query_var('paged');
} elseif ( get_query_var('page') ) {
    $paged = get_query_var('page');
} else {
    $paged = 1;
}

これは、回答の元のコードの最初の3行を置き換えるだけです。残りはまったく同じに見えます。

于 2012-06-18T13:51:11.277 に答える