2

私はすでにウェブ上で彼の問題に関するいくつかの情報を読んだことがありますが、私には深刻な解決策がありませんでした。私が読んだリソース:http:
//codex.wordpress.org/The_Loop#Multiple_Loops_in_Action

http://wordpress.org/support/topic/next_posts_link-not-displays-same-posts-not-next-posts-when-using-offset-まったく同じ問題。

これがindex.phpの私のコードです:

<!--slider-->
<div id="featured"> 
            <?php 
                // query the posts of your custom post types
                query_posts('posts_per_page=5');
                if (have_posts()) : while (have_posts()) : the_post(); ?>

<!--main body-->
    <?php 
                // query the posts of your custom post types
                query_posts('posts_per_page=5&offset=5');
                if (have_posts()) : while (have_posts()) : the_post(); ?>

次の投稿を押すと、本文の投稿と同じ複製が表示されます。
これに対する解決策は何ですか?

編集: 私は新しいコードを書きました:

// featured
$slider = new WP_Query(array('posts_per_page' => 5));
if ($slider->have_posts()) : while ($slider->have_posts()) : $slider->the_post();

//main:
    $p = get_query_var('paged');
                if($p >0){
                $main = new WP_Query(array('posts_per_page' => 5, 'paged'=>get_query_var('paged')));
                }else{
                $main = new WP_Query(array('posts_per_page' => 5, 'offset' => 5,'paged'=>get_query_var('paged')));
                }
                if ($main->have_posts()) : while ($main->have_posts()) : $main->the_post();

//ナビゲーション:

<div class="navigation" >
    <div class="next-posts"><div class="nextBtn2"><?php previous_posts_link(); ?></div></div>
    <div class="prev-posts"><?php next_posts_link(); ?></div>
</div>
4

4 に答える 4

1

二次ループ(機能)にはWP_Queryを使用し、本体にはquery_postsを使用する必要があります。
95%動作
します。これは、(非常に)最後の5つのアイテムを取得しようとするため、最後のページで壊れますが、それらの5つはオフセットになります。:(
したがって、最後から2番目のページでは、「次のページ」のページ付けを非表示にする必要があります。

$featured = new WP_Query(array('posts_per_page' => 5));
if ($featured->have_posts()) : while ($featured->have_posts()) :
    $featured->the_post();

//shouldn't be needed if u use only one query_posts but it won't hurt
wp_reset_query();

$paged = get_query_var('paged');
$wanted_offset = 5;
// page zero won't need a hack
if ($paged != 0 ) {
    $post_per_page = 3;
    //$paged -1 because there is no page 1, just 0 and 2
    $offset = ($paged-1) * $post_per_page + get_query_var('posts_per_page');
} else {
    $offset = get_query_var('posts_per_page');    
}
query_posts('offset=' . $offset);
if (have_posts()) : while (have_posts()) : the_post();

それがあなたにも役立つかどうか私に知らせてください。

于 2012-04-12T13:51:26.910 に答える
0
<?php if(is_home() && !is_paged()): ?>

?>

<?php else:
$setpo = get_option('posts_per_page');
$targ = $setpo*($paged-2)+11; ?>

<?php query_posts(array('category_name' => 'websites', 'offset' => $setpo));
endif; ?>
于 2012-05-30T13:35:43.977 に答える
0

WP_Queryオブジェクトの2つのインスタンスを使用してみましたか?

<?php

// featured
$featured = new WP_Query(array('posts_per_page' => 5));
if ($featured->have_posts()) : while ($featured->have_posts()) : $featured->the_post();

// main body
$main = new WP_Query(array('posts_per_page' => 5, 'offset' => 5));
if ($main->have_posts()) : while ($main->have_posts()) : $main->the_post();

?>
于 2012-04-10T05:39:03.443 に答える
0

ワードプレスのテーマを作成しているときに、すでにこの問題が発生しています。

実際に使用する場合、ポストループを表示する方法はたくさんあります

query_posts、ループ後にクエリをリセットする必要がある場合があります

<?php

// The Query
query_posts('posts_per_page=5');   
// The 1st Loop
while ( have_posts() ) : the_post();
    //your first set of latest posts
endwhile;  
// Reset Query
wp_reset_query();

//Second Query
query_posts(array('paged'=>$paged, 'offset'=>5));
// The 2nd Loop
while (have_posts()) : the_post();
    // your second set of posts
endwhile;
// Reset Query
    wp_reset_query();

?>

また、2番目のループにget post(このwp関数にはオフセットパラメーターがあります)を使用できます

<?php
global $post;
$tmp_post = $post;
$args = array( 'numberposts' => 5, 'offset'=> 1, 'category' => 1 );
$myposts = get_posts( $args );
foreach( $myposts as $post ) : setup_postdata($post); ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
<?php $post = $tmp_post; ?>

http://codex.wordpress.org/Template_Tags/get_posts

スライダーの投稿を既に取得している場合は、これを本体の2番目のループで使用できます。

それが役に立てば幸い

于 2012-04-12T06:34:00.993 に答える