The post_limits WordPress PHP filter allows you to modify the LIMIT clause of a query.
Usage
add_filter('post_limits', 'my_custom_post_limits', 10, 2);
function my_custom_post_limits($limits, $query) {
// your custom code here
return $limits;
}
Parameters
$limits: (string) The LIMIT clause of the query.$query: (WP_Query) The WP_Query instance (passed by reference).
More information
See WordPress Developer Resources: post_limits
Examples
Modify post limit to show 5 posts
Limit the number of posts displayed to 5.
add_filter('post_limits', 'limit_to_five_posts', 10, 2);
function limit_to_five_posts($limits, $query) {
// Set the LIMIT clause to 5
$limits = 'LIMIT 5';
return $limits;
}
Remove limits for a specific category
Remove the LIMIT clause for posts in the “News” category.
add_filter('post_limits', 'no_limits_for_news_category', 10, 2);
function no_limits_for_news_category($limits, $query) {
if ($query->is_category('News')) {
// Remove the LIMIT clause
$limits = '';
}
return $limits;
}
Apply custom limits for custom post type
Apply custom limits only for a custom post type called “Events”.
add_filter('post_limits', 'custom_limits_for_events', 10, 2);
function custom_limits_for_events($limits, $query) {
if ($query->is_post_type_archive('events')) {
// Set the LIMIT clause to 10
$limits = 'LIMIT 10';
}
return $limits;
}
Increase limits for search results
Increase the LIMIT clause for search results to display more posts.
add_filter('post_limits', 'increase_limits_for_search', 10, 2);
function increase_limits_for_search($limits, $query) {
if ($query->is_search()) {
// Increase the LIMIT clause to 20
$limits = 'LIMIT 20';
}
return $limits;
}
Remove limits for logged-in users
Remove the LIMIT clause for logged-in users.
add_filter('post_limits', 'no_limits_for_logged_in_users', 10, 2);
function no_limits_for_logged_in_users($limits, $query) {
if (is_user_logged_in()) {
// Remove the LIMIT clause
$limits = '';
}
return $limits;
}