2012-04-09 5 views
2

私はすでにウェブ上で彼の問題に関するいくつかの情報を読みましたが、私は深刻な解決策はありませんでした。 リソース私が読んで:
http://codex.wordpress.org/The_Loop#Multiple_Loops_in_ActionWordpressの複数のループの動作 - ナビゲーションの複製

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(); ?> 

私はボディポストの同じ複製を取得します。
これの解決方法は何ですか?

EDIT: 私は新しいコードを書いている:

// 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> 
+0

に何がある – hakre

答えて

1

に役立ちます願っています。
95%
(最後の5つの項目を取得しようとしますが、その5つはオフセットになるため、最後のページでブレークします) :(
だから、あなたが「次のページ」改ページを非表示にする必要があります最後から二番目のページ....

$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(); 

が、それはあまりにもあなたのために働くなら、私に教えてください。

+0

それは働いた!ありがとう! – funerr

+0

最後のページの欠点が壊れることを知っていたか – janw

+0

それは壊れていませんでしたが(私は理由はわかりませんが)、無限のスクロールプラグインを使用しました。 – funerr

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(); 

?> 
+0

ありがとうございますが、それでも動作しません、私は自分の投稿を編集して私がチェックしたものを表示しています。それはあなたが私のサイトを訪問し、自分のために参照することをお勧めします:www.gamersfleet.com – funerr

+0

@ agam360私たちはさらに移動する前にいくつかのことを明確にしましょう。 antを使って、スライダに最新の5つの投稿を表示し、メインセクションの投稿をスキップしますか? – marknatividad

+0

はい、私は次のページに、スライダに既に表示されている5つの投稿のオフセットを設定します。 – funerr

0

私はWordPressのテーマを作っていたとき、私はすでにあなたが

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(); 

?> 

また、あなたの第二のループ

のために(このWP機能は、オフセットのparamを持っている)のgetポストを使用することができた後に、クエリ
<?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次ループのためWP_Query(特色)すべきであり、本体用query_postsを使用

+0

いいえ、それはトリックをしませんでした(私はコードの最初のブロックを実装しました)。オフセットは機能しません。私のページはファンキーです。 – funerr

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; ?> 
関連する問題