web-dev-qa-db-ja.com

Wordpress 3.2のquery_postsとページネーション、パーマリンクの問題

私の質問は新しいものではありませんが、私の場合は見つかったすべての解決策ではうまくいきません。

カスタムのquery_postsループを使用して、最近の投稿を単一の投稿に表示しようとしています。パーマリンク構造は次のようになります:/%category%/%postname%/

Wordpressのバージョン:3.2.1

ページには2つのループがあります。

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <!--first content part-->
<?php endwhile; endif;?>

<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts('posts_per_page=3&paged='.$paged);

if (have_posts()) : while (have_posts()) : the_post(); ?>
    <!--recent posts-->
<?php endwhile; endif; wp_reset_query();?>

そのため、 http://www.domain.com/category/post-one/page/2/ のように次のページを呼び出すと、/ page/2が削除されます。 /そして他に何もしません。

私はすでに実用的な解決策を探していて、解決することが可能かどうかわからないと思っています。

ありがとうございました。

1
Alex

WP_QueryのWPコーデックスから:

現在のページからの投稿を表示

現在のページからの投稿を表示:

$ query = new WP_Query( 'paged ='。get_query_var( 'page'));

ページ付け注:get_query_var( 'page')を設定する必要があります。あなたのクエリがページネーションで動作するようにしたい場合。 Wordpress 3.0.2以降、get_query_var( 'paged')の代わりにget_query_var( 'page')を実行します。 WP_Query()のページ付けパラメータ 'paged'は変わりません。

クエリvarを 'paged'から 'page'に変更すると、次のコードになります。

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <!--first content part-->
<?php endwhile; endif;?>

<?php
$paged = (get_query_var('page')) ? get_query_var('page') : 1;
query_posts('posts_per_page=3&paged='.$paged);

if (have_posts()) : while (have_posts()) : the_post(); ?>
    <!--recent posts-->
<?php endwhile; endif; wp_reset_query();?>
1
Steve Buzonas