I saw a number of posts asking how to make search only return posts, and not pages or other post types. The most common reply said to check $post->post_type inside the loop, and continue; if the post type is anything but ‘post’. The problem with this is that it leads to odd behavior when functions like have_posts() are used.
Instead, place this code above get_header() in search.php
## Only Posts global $wp_query; $wp_query = new WP_Query(array_merge($wp_query->query_vars, array( 'post_type' => 'post' )));
That will take whatever the existing query variable for the current search are, and will simply override the post_type to be ‘post’. (You can also use this to do things like prevent search from returning private posts.)
– The Love of Code
- The topic ‘[How-To]’ is closed to new replies.