it-swarm.com.de

Die ersten 3 Beiträge in wp_query werden übersprungen

Hier ist die Abfrage, die ich verwendet habe.

 <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
 $wp_query = new WP_Query('order=asc&orderby=meta_value&meta_key=date&posts_per_page=6&paged=' . $paged); ?>

Gibt es eine Möglichkeit, die ersten 3 Posts nur auf der ersten Seite (? Paged = 1) und nicht auf den anderen Seiten (? Paged = 2 ....) zu überspringen.

2
Megh Gandhi

Verwenden Sie zum Überspringen des Posts einfach den Offset-Parameter in wp_query.

So zeigen Sie die letzten drei Beiträge an:

<?php
$latestpost = new WP_Query('order=asc&orderby=meta_value&meta_key=date&posts_per_page=3');

//Here add loop to display posts like

while($latestpost->have_posts()) : $latestpost->the_post();

the_title();

the_content();

endwhile; wp_reset_query();

//After that skip three posts using offset

 $latestpost = new WP_Query('order=asc&orderby=meta_value&meta_key=date&posts_per_page=6&offset=3&paged=' . $paged); 

the_title();

the_content();

endwhile; wp_reset_query();

?>

Das ist es

3
Deepak kumar

http://www.smashingmagazine.com/2009/06/10-useful-wordpress-loop-hacks/#2-use-more-than-one-loop-on-a-page-with-printing-duplicate -posts

Nun, ich bin einfach dieser Methode gefolgt und habe einige Änderungen daran vorgenommen ...

// in functions.php
$mega = new WP_Query('order=asc&orderby=meta_value&meta_key=date&posts_per_page=3');
//set the posts per page to 3 so the id's of the first 3 posts will be shown 
$ids = array();
while ($mega->have_posts()) : $mega->the_post();
$ids[] = get_the_ID();

endwhile;

Danach zur Hauptschleife zum Überspringen der ersten drei Beiträge, die ich ein wenig geändert habe.

   $args= array(
'post_type' => 'post',
'posts_per_page' => 6,
'paged' => $paged,
'order'=> 'asc',
'orderby'=> 'meta_value',
'meta_key'=>'date',
'post__not_in' => $ids

 );
    $wp_query = new WP_Query($args);

Und es funktioniert wie ich wollte ..

1
Megh Gandhi

Mit dem Offset-Parameter: https://codex.wordpress.org/Class_Reference/WP_Query#Pagination_Parameters

$wp_query = new WP_Query('order=asc&orderby=meta_value&meta_key=date&posts_per_page=6&offset=3&paged=' . $paged); ?>
0
William C

Anstatt das Attribut offset zu verwenden, haben Sie darüber nachgedacht, eine Variable mit dem Wert 1 zu erstellen, die in der Schleife inkrementiert wird. Wenn die Schleife kleiner als 4 ist, nichts tun, sonst

<?php
    $p=1;
    while ( have_posts() ) : the_post();
        if($p > 3) {
?>
// DO STUFF

Hiermit wird das Problem nicht behoben. Möglicherweise können Sie jedoch die Bedingung festlegen, dass bei der ersten Seite die ersten 3 übersprungen werden.

0
Aric Harris