web-dev-qa-db-ja.com

同じページに次へ/前の投稿

WordPressユーザー様、こんにちは。

私は私のワードプレスのウェブサイトを構築する問題で立ち往生しています、そして私はそれについて何をすべきか理解できません。

現在、「ニュース」ページのカテゴリ「ニュース」から2件の投稿を表示しています。このページの一番下には、同じカテゴリの前後2つの投稿を表示する[Prev/Next]ボタンが必要です。

それで私はそれをどうやって行うかを探していました。だから私はこのコードを見つけました:

previous_posts_link('Newer Entries »')
next_posts_link('« Older Entries');

これは私が期待していたようなリンクを表示します。しかし、両方のリンクが機能していません(ページのリロード、しかし同じエントリが表示されます)。

私はまたこのコーデックスでこれを見つけた:

posts_nav_link('∞','Go Forward In Time','Go Back in Time');

また、 'Setting'> 'Reading'で、最大投稿数を2に設定しました。

私はこれをどう処理できるかわかりません。 [次へ]または[前へ]ボタンが押されたときに、同じカテゴリの次の2つ(または[X])の投稿を表示する方法はありますか?

ありがとうございます。

編集:これは私が記事を取得する方法です:

$args_news= array(
        'cat' => 1,
        'posts_per_page' => 2,
        'orderby' => 'post_date',
        'order' => 'DESC'
    );

    query_posts( $args_news );

    if ( have_posts() ) :
        while ( have_posts() ) :
            the_post();

          the_title();
          the_content();

          endwhile;
    endif;

しかし、私がこの記事のページを作成する方法をまだ知りません。現在、最新の2件の投稿を表示しています。

1
Ronny Rook

Pagedquery_postsのパラメータ配列に渡します

あなたのクエリがページネーションで動作するようにしたい場合はget_query_var( 'paged' );を設定する必要があります。

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args_news= array(
        'cat' => 1,
        'posts_per_page' => 2,
        'orderby' => 'post_date',
        'order' => 'DESC',
        'numberposts' => -1,
        'paged' => $paged,
    );

    query_posts( $args_news );
if ( have_posts() ) :
        while ( have_posts() ) :
            the_post();

          the_title();
          the_content();

          endwhile;
    endif;

詳細については、 https://codex.wordpress.org/Pagination

3
dipali

どちらもループにはpagedクエリ変数、リンクにはmax_num_pages変数を使用する必要があります。

$news_args = array(
    'cat' => 1,
    'paged' => get_query_var('paged'),
    'posts_per_page' => 1,
    'orderby' => 'post_date',
    'order' => 'DESC',
);

$news_query = new WP_Query($news_args);

if ($news_query->have_posts()) :

    while ($news_query->have_posts()) : $news_query->the_post();
        the_title();
        the_content();
    endwhile;

    previous_posts_link('prev', $news_query->max_num_pages);
    echo ' — ';
    next_posts_link('next', $news_query->max_num_pages);

endif;
1
tfrommen