2

私はワードプレスサイトで作業しています。このサイトには、「plops」というカスタム投稿タイプがあります。このカスタム投稿タイプは、Webサイトでのみ使用したいと思います。したがって、index.phpでは、WP_Queryを使用してループしています。コードは次のとおりです。

<?php 
$args = array( 'post_type' => 'plops', 'posts_per_page' => 30, 'orderby' => 'desc');
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
$meta = get_post_meta($post->ID);
?> 
// my template for the post...

<?php endwhile; ?>

このページへの無限スクロールを実装したいので、そのためにページ付けリンクが必要です。関数でそれらを実装しようとしましたが、動作さnext_posts_link()せることができません!リンクが表示されないだけで、たくさんのことを試しましたが、何も機能しないようです...

mysite.com/worpress/page/2にアクセスすると、投稿は表示されますが、firebugで404が表示されます...奇妙な...

何か案は ?本当に助けていただければ幸いです!よろしくお願いします!

4

2 に答える 2

2

以下の修正はあなたを助けるかもしれません-これは私のために働きました。これは、ここでのChrisCoyierのソリューションとコメントにあるいくつかのヘルプを組み合わせたものです。 CSSトリック記事

//Fix homepage pagination
if ( get_query_var('paged') ) {
    $paged = get_query_var('paged');
} else if ( get_query_var('page') ) {
    $paged = get_query_var('page');
} else {
    $paged = 1;
}

$args = array('post_type' => 'custom_post_type', 'paged' => $paged );

$temp = $wp_query; 
$wp_query = null; 
$wp_query = new WP_Query(); 
$wp_query->query( $args ); 

while($wp_query->have_posts()) : $wp_query->the_post(); 
?>

  <!-- LOOP: Usual Post Template Stuff Here-->

<?php endwhile; ?>

<nav>
    <?php previous_posts_link('&laquo; Newer') ?>
    <?php next_posts_link('Older &raquo;') ?>
</nav>

<?php 
  $wp_query = null; 
  $wp_query = $temp;  // Reset
?>
于 2013-06-05T02:10:58.050 に答える
1

この質問が投稿されてから長い時間が経ちましたが、自分のコードでこれを達成する方法を探している人は次のようになります。

$args = array( 'post_type' => 'plops', 'posts_per_page' => 30, 'order' => 'desc');
$loop = new WP_Query( $args );

while ( $loop->have_posts() ) {
    $loop->the_post();
    $meta = get_post_meta($post->ID);
    // my template for the post...
}

previous_posts_link('&laquo; Newer');
next_posts_link('Older &raquo;', $loop->max_num_pages);

wp_reset_postdata();

注:最大ページ数をnext_posts_link関数にのみ渡す必要があります。

于 2014-10-09T17:23:11.090 に答える