2012-04-09 12 views
2

Ich habe bereits einige Informationen über sein Problem im Web gelesen, aber ich hatte keine ernsthafte Lösung. Ressourcen lese ich:
http://codex.wordpress.org/The_Loop#Multiple_Loops_in_ActionWordpress mehrere Loops in Aktion - Navigation Dubletten

http://wordpress.org/support/topic/next_posts_link-not-displays-same-posts-not-next-posts-when-using-offset - Genau das gleiche Problem.

hier Jetzt ist mein Code in 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(); ?> 

Wenn ich die nächsten Beiträge drücken bekommen wir die gleichen Duplikate der Körperstützen.
Was ist die Lösung dafür?

EDIT: Ich habe neue Code geschrieben:

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

// Navigation:

<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

Was ist dupliziert, ich finde es schwer, das aus deiner Frage zu lesen? Etwas ist dupliziert, aber es ist nicht klar, was und wann. – hakre

Antwort

1

hilft Sie sollten WP_Query für Sekundärkreis (der vorgestellten) und query_posts für den Hauptkörper zu verwenden.
Es funktioniert 95%
es wird auf der letzten Seite brechen, weil es versuchen wird, die (sehr) letzten 5 Elemente zu bekommen, aber diese 5 werden im Offset sein. :(
Also auf der vorletzten Seite, die Sie benötigen würde die ‚nächste Seite‘ Paginierung zu verstecken ....

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

Lassen Sie mich wissen, ob es auch für Sie arbeitet.

+0

Es hat funktioniert! Vielen Dank! – funerr

+0

Wusste, der Nachteil der letzten Seite wird – janw

+0

brechen Es brach nicht (ich weiß nicht warum), aber ich habe das Unendliche Scroll-Plugin, vielleicht, dass es verursacht. – funerr

0

Haben Sie versucht, zwei Instanzen des WP_Query-Objekt?

<?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

Danke, aber es funktioniert immer noch nicht, ich habe meine Beiträge bearbeitet, die zeigen, was ich verwendet habe, zu überprüfen Ich schlage vor, Sie besuchen meine Website und sehen für sich selbst: www.gamersfleet.com – funerr

+0

@ agam360 Lassen Sie uns ein paar Dinge klären, bevor wir weiterziehen .. Sie w ant die letzten 5 Posts im Slider anzuzeigen und diese im Hauptteil zu überspringen? – marknatividad

+0

Ja, ich möchte, und die nächste Seite soll einen Offset von diesen 5 Posts haben, die bereits im Slider angezeigt wurden. – funerr

0

ich bereits dieses Problem auftritt, wenn ich ein Wordpress-Themen machen,

Eigentlich gibt es viele Wege, die Post-Schleife angezeigt werden, wenn Ihr

query_posts verwenden, können Sie die zurücksetzen müssen Abfrage nach der Schleife

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

?> 

können Sie auch Post (diese wp-Funktion hat einen Offset-param) für Ihre zweite Schleife

verwenden bekommen
<?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

Wenn Sie bereits den Pfosten Schieber haben, können Sie diese auf Ihrem zweiten Schleife im Körper verwendet werden.

Hoffe, dass es

+0

Nein, es hat den Trick nicht gemacht (ich habe den ersten Code-Block implementiert). Der Offset funktioniert nicht. und meine Seiten sind funky. – 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; ?>