By default, the number of entries on the search results page in WordPress is taken from the read settings in the admin. You can change this global request by using the pre_get_posts
hook. In the example below, we’ll set it to display 50 entries on the search.php
search results page:
// Set 50 posts in the search results.
add_action( 'pre_get_posts', 'change_amount_posts_on_search_page', 1 );
function change_amount_posts_on_search_page( $query ) {
// Exit if it is an admin panel or not a basic request.
if ( is_admin() || !$query->is_main_query() ) {
return;
}
if ( $query->is_search() ) {
$query->set( 'posts_per_page', 50 );
}
}