wake-up-neo.com

Wie kann ich die Gesamtzahl der Posts in einer wp-Abfrageschleife begrenzen?

Ich möchte 5 Beiträge pro Seite anzeigen, aber die Gesamtzahl der Beiträge begrenzen, die zu einer Schleife führen.

$args = array(
  'post_type' => 'post',
  'posts_per_page' => 5,
  'paged' => $paged
);

Angenommen, ich habe 100 Posts und die obigen Abfrageargs zeigen 5 Posts pro Seite an und ich kann 20 Pages sehen. Wie kann ich die Gesamtzahl der resultierenden Posts begrenzen, sodass in meinem Zustand nur 3 Seiten angezeigt werden? Ich brauche nicht genau 3 Seiten, um zu zeigen, aber ich wollte den Gesamtbeitrag wie 25 Beiträge, 23 Beiträge begrenzen. Wenn ich also 12 Beiträge begrenzen möchte, sehe ich 5 Beiträge auf der ersten Seite, 5 Beiträge auf der zweiten Seite und die restlichen 2 Beiträge auf der letzten Seite.

2

Sie können den found_posts-Filter verwenden, um die Anzahl der Beiträge zu ändern, die WordPress-Berichte aus einer Abfrage ermitteln.

add_filter( 'found_posts', 'wpd_found_posts', 10, 2 );
function wpd_found_posts( $found_posts, $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        return 25;
    }
}
1
Milo

Sie können das Post-Limit auf zwei Arten festlegen:

1) wp-admin > Settings > Reading

2) By passing the argument query 'numberposts' => 5
0
Anand

Verwenden Sie den Parameter 'numberposts' ...

$args = array(
'post_type' => 'post',
'numberposts' => 25,
'posts_per_page' => 5,
'paged' => $paged
);

Beispiel im Entwickler-Codex

0
Gonzoarte

Verwenden Sie den Haken post_limits mit einer Priorität von 2 ...

function my_posts_limit( $limit, $query ) {
  return 'LIMIT 0, 25';
}
add_filter( 'post_limits', 'my_posts_limit', 10, 2 );
0
Gonzoarte

post_limits

/**
 * Limit the main query search results to 25.
 *
 * We only want to filter the limit on the front end of the site, so we use
 * is_admin() to check that we aren't on the admin side.
 *
 * We also only want to filter the main query, so we check that this is it
 * with $query->is_main_query().
 *
 * Finally, we only want to change the limit for searches, so we check that
 * this query is a search with $query->is_search().
 *
 * @see http://codex.wordpress.org/Plugin_API/Filter_Reference/post_limits
 * 
 * @param string $limit The 'LIMIT' clause for the query.
 * @param object $query The current query object.
 *
 * @return string The filtered LIMIT.
 */
function wpcodex_filter_main_search_post_limits( $limit, $query ) {

    if ( ! is_admin() && $query->is_main_query() && ($query->is_search() || $query->is_home()) ){
        return 'LIMIT 0, 25';
    }

    return $limit;
}
add_filter( 'post_limits', 'wpcodex_filter_main_search_post_limits', 10, 2 );
0
ravi patel