Reputation: 73
Below form is giving me the exact result. I have a product custom post which result need to be below or under the form with
<form role="search" method="get" id="searchform" action="<?php echo home_url( '/' ); ?>">
<label>
<span class="screen-reader-text">Search for:</span>
<input type="text" name="s" placeholder="Search Product..." id="search">
<input type="submit" id="searchsubmit" value="Search">
<input type="hidden" name="post_type" id="post_type" value="product">
</label>
</form>
<hr>
my custom post code add_action('init', 'product_register');
function product_register() {
$args = array('label' => __('Products'), 'singular_label' => __('Product'), 'public' => true, 'show_ui' => true, 'capability_type' => 'post', 'hierarchical' => false, 'rewrite' => true, 'supports' => array('title', 'editor', 'thumbnail'));
register_post_type('product', $args);
}
add_action('admin_init', 'admin_init');
my code for search result
<div class="container">
<?php if ( have_posts() && strlen( trim(get_search_query()) ) != 0 ) : ?>
<h1>Search Results for<small><?php echo get_search_query(); ?></small></h1>
<?php while ( have_posts() ) : the_post(); ?>
<?php if ( has_post_thumbnail() ) : ?>
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'medium' ); ?></a>
<div class="span9">
<?php else : ?>
<div class="span12">
<?php endif; ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php the_excerpt(); ?>
<hr />
<?php endwhile; ?>
<?php else : ?>
<div class="page-header">
<h1 class="page-title">No results Found</h1>
</div>
<?php endif ;?>
</div><!--/.container -->
Kindly advice to show exact result.
Upvotes: 0
Views: 1625
Reputation: 6650
You need to set the custom post type inside pre_get_posts
hook, add this code inside functions.php,
add_filter( 'pre_get_posts', 'add_cpt_in_search_result' );
function add_cpt_in_search_result( $query ) {
if ( $query->is_search ) {
$query->set( 'post_type', array( 'post', 'page', 'product' ) );
}
return $query;
}
Upvotes: 2