Put any of the filters in the functions.php
Using pre get posts
// Filter the search page
add_filter('pre_get_posts', 'search_pre_get_posts');
function search_pre_get_posts($query)
{
// Verify that we are on the search page that that this came from the event search form
if($query->query_vars['s'] != '' && is_search())
{
// If "s" is a positive integer, assume post id search and change the search variables
if(absint($query->query_vars['s']))
{
// Set the post id value
$query->set('p', $query->query_vars['s']);
// Reset the search value
//$query->set('s', '');
}
}
}
Using posts where query
add_filter('posts_where', 'posts_where');
function posts_where($where)
{
$s = $_GET['s'];
if(!empty($s))
{
if(is_numeric($s))
{
global $wpdb;
$where = str_replace('(' . $wpdb->posts . '.post_title LIKE', '(' . $wpdb->posts . '.ID = ' . $s . ') OR (' . $wpdb->posts . '.post_title LIKE', $where);
}
elseif(preg_match("/^(\d+)(,\s*\d+)*\$/", $s)) // string of post IDs
{
global $wpdb;
$where = str_replace('(' . $wpdb->posts . '.post_title LIKE', '(' . $wpdb->posts . '.ID in (' . $s . ')) OR (' . $wpdb->posts . '.post_title LIKE', $where);
}
}
return $where;
}
Use any one functions as your need. The first function gives you exact search using search id. ex: 1 gives you 1 id’s post only.
Now how to show posts all value I am given you hints.
Edit your search.php or add search.php in your theme. Basically every theme has search.php, so you just need to modify a little bit.
I am giving you some example code for search.php. you will modify it as your need.
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
$post_id = get_the_ID();
$id = get_post_thumbnail_id($post_id);
$image = wp_get_attachment_image_url($id,'full');
?>
// Print The title
<?php echo get_the_title($post_id); ?>
//print full content of the post
<?php echo get_the_content(); ?>
//print the excert
<?php print get_the_excerpt($post_id); ?>
// print the image
<img src="https://wordpress.stackexchange.com/questions/262104/<?php echo $image; ?>" class="attachment-portfolio-three size-portfolio-three wp-post-image" alt="">
// suppose custom field
<a href="<?php echo get_the_permalink($post_id); ?>">
<?php echo get_post_meta($post_id,'custom_field_1',true);?>
</a>
// suppose custom field 2
<a href="<?php echo get_the_permalink($post_id); ?>">
<?php echo get_post_meta($post_id,'custom_field_2',true);?>
</a>
// suppose custom field 3
<a href="<?php echo get_the_permalink($post_id); ?>">
<?php echo get_post_meta($post_id,'custom_field_2',true);?>
</a>
<?php endwhile;?>
<?php wp_reset_query();
// print pagination and also its arg if you use my code.
paginate_links($args);
else :
?>
<p><?php _e( 'Sorry, but nothing matched your search terms. Please try again with some different keywords.', 'twentyseventeen' ); ?></p>
<?php
get_search_form();
endif;
?>