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