These are the templates used for the Search page menu item and the search results page.
Search Page
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | <?php /* Template Name: Search */ get_header(); ?> <div id=“primary”> <div id=“content” role=“main”> <header class=“page-header”> <div class=“post-headline”><h1>Search</h1></div> </header> <p> <h2>Search by Keywords</h2> <form role=“search” method=“get” id=“searchform” class=“searchform” action=”<?php bloginfo( ‘siteurl’ ); ?>”> <table class=“searchform” cellpadding=“2” cellspacing=“2” border=“0” > <tr> <td style=“vertical-align: top;” > <label class=“screen-reader-text assistive-text” for=“s”>Search for:</label> </td> <td class=“searchfield”> <input type=“text” class=“text inputblur” value=”<?php esc_attr( the_search_query() ); ?>” name=“s” /> </td> <td class=“searchbutton”> <input name=“submit” value=“Search” type=“image” src=”<?php echo get_template_directory_uri(); ?>/images/magnifier2.gif” /> </td> </tr> <tr> <td style=“vertical-align: top;” > Limit By: </td> <td class=“searchfield” col=“2” > <label class=“screen-reader-text assistive-text” style=“vertical-align: top;” for=“cat”>Category:</label> <?php echo ( str_replace( array( “<select “, ), array( “<select multiple=‘multiple’ size=‘5’ “, ), wp_dropdown_categories( array( ‘echo’ => 0, ‘show_option_all’ => ‘All Categories’, ‘show_count’ => 1, ‘hierarchical’ => 1, ‘taxonomy’ => ‘category’, ‘orderby’ => ‘name’, ‘name’ => ‘cat[]’, ‘id’ => ‘cat’, ) ) ) ); ?> <label class=“screen-reader-text assistive-text” style=“vertical-align: top;” for=“tag”>Tag:</label> <select multiple=“multiple” name=‘tag[]’ id=‘tag’ class=‘postform’ size=“5”> <option value=”” selected=“selected” >All Tags</option> <?php foreach ( get_tags() as $tag ) { echo ‘<option class=“level‑0” value=“ ‘, $tag->slug, ’ ”>’, $tag->name . ‘ (‘ . $tag->count . ’)’, “</option>n”; } ?> </select> <label class=“screen-reader-text assistive-text” style=“vertical-align: top;” for=“post_type”>Type:</label> <select name=‘post_type’ id=‘post_type’ class=‘postform’ style=“vertical-align: top;” > <option class=“level‑0” value=“any” selected=“selected”>Any Type</option> <option class=“level‑0” value=“page”>Page</option> <option class=“level‑0” value=“post”>Post</option> </select> </td> </tr> <tr> <td style=“vertical-align: top;” > Control: </td> <td class=“searchfield” col=“2” > <label class=“screen-reader-text assistive-text” for=“orderby”>Order By:</label> <select name=‘orderby’ id=‘orderby’ class=‘postform’> <option class=“level‑0” value=”” selected=“selected”>Default</option> <option class=“level‑0” value=“title”>Title</option> <option class=“level‑0” value=“author”>Author</option> <option class=“level‑0” value=“category”>Category</option> <option class=“level‑0” value=“date”>Date Created</option> <option class=“level‑0” value=“modified”>Date Modified</option> </select> <label class=“screen-reader-text assistive-text” for=“order”>Order:</label> <select name=‘order’ id=‘order’ class=‘postform’ > <option class=“level‑0” value=”” selected=“selected”>Default</option> <option class=“level‑0” value=“ASC”>Ascending</option> <option class=“level‑0” value=“DESC”>Descending</option> </select> <label class=“screen-reader-text assistive-text” for=“order”>Posts Per Page:</label> <select name=‘posts_per_page’ id=‘posts_per_page’ class=‘postform’ > <option class=“level‑0” value=”” selected=“selected”>Default</option> <option class=“level‑0” value=“-1”>All</option> <option class=“level‑0” value=“5”> 5</option> <option class=“level‑0” value=“10”>10</option> <option class=“level‑0” value=“15”>15</option> <option class=“level‑0” value=“25”>25</option> </select> <label class=“screen-reader-text assistive-text” for=“exact”>Exact Match:</label> <input name=“exact” id=“exact” type=“checkbox” value=“1” onclick=“javascript:document.getElementById(‘sentence’).checked = false;” /> <label class=“screen-reader-text assistive-text” for=“sentence”>Search by Phrase:</label> <input name=“sentence” id=“sentence” type=“checkbox” value=“1” onclick=“javascript:document.getElementById(‘exact’).checked = false;” /> </td> </tr> <tr> <td style=“vertical-align: top;” > Notes: </td> <td style=“vertical-align: top;” > <ul> <li>The search control parameters “Exact Match” and “Search by Phrase” are mutually incompatible and both cannot be selected at the same time.</li> </ul> </td> </tr> </table> </form> </p> </div><!– #content –> </div><!– #primary –> <?php get_Sidebar(); get_footer(); ?> |
This is an expansion of the standard ‘searchform.php’ file that is used by WordPress to insert a search form into a page.The search parameters here go beyond just accepting a text search parameter to where the search function will also search by one or more categories or a tags, limit the search to pages or posts, and will sort the resulting posts or pages by name, author, category or date, ascending and descending, specifying an exact match or a match by phrase and specify the number of results shown on an individual page.
The short URL of the present article is: http://www.terryobrien.me/cnu2p
Personal Links