public
Created

A search query for wordpress:

  • Download Gist
index.php
PHP
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
<?php
/**
* The main template file.
*
* This is the most generic template file in a WordPress theme
* and one of the two required files for a theme (the other being style.css).
* It is used to display a page when nothing more specific matches a query.
* E.g., it puts together the home page when no home.php file exists.
* Learn more: http://codex.wordpress.org/Template_Hierarchy
*
* @package WordPress
* @subpackage Twenty_Eleven
*/
 
get_header(); ?>
 
<div id="primary">
<div id="content" role="main">
 
<?php if ( have_posts() ) : ?>
 
<?php twentyeleven_content_nav( 'nav-above' ); ?>
 
<?php /* Start the Loop */ ?>
<?php
/*
this is the search query
*/
//Check if using meta
$usemeta = false;
 
$args = array(
'post_type'=>'', //type the custom post name
'posts_per_page' => 10, //number of post
'paged' => $paged, //paged?
'meta_query' => array( //meta search
),
'tax_query' => array( //taxonomies search
),
'orderby' => 'meta_value', //order by meta
'meta_key' => '',// change to order by start date
'order' => 'ASC'
);
//if get start date is set add it to meta query
if (isset($_GET['startdate']) && !empty($_GET['startdate'])) {
$args['meta_query'][] = array(
'key' => 'event_start_date', // change to your meta name
'value' => $_GET['startdate'],
'compare' => '>='
);
$usemeta = true;
}
//do the same for end dat
if (isset($_GET['enddate']) && !empty($_GET['enddate'])) {
$args['meta_query'][] = array(
'key' => 'event_end_date',// change to your meta name
'value' => $_GET['enddate'],
'compare' => '<='
);
$usemeta = true;
}
//if not search, display only events that is active
if(!$usemeta){
$args['meta_query'][] = array(
'key' => 'event_start_date',
'value' => date('Y-m-d'),
'compare' => '>='
);
}
//new query
$the_query = new WP_Query( $args );
?>
 
<?php // The loop ?>
<?php while ($the_query->have_posts() ) : $the_query->the_post(); ?>
 
<?php get_template_part( 'content', get_post_format() ); ?>
 
<?php endwhile; ?>
 
<?php twentyeleven_content_nav( 'nav-below' ); ?>
 
<?php else : ?>
 
<article id="post-0" class="post no-results not-found">
<header class="entry-header">
<h1 class="entry-title"><?php _e( 'Nothing Found', 'twentyeleven' ); ?></h1>
</header><!-- .entry-header -->
 
<div class="entry-content">
<p><?php _e( 'Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.', 'twentyeleven' ); ?></p>
<?php get_search_form(); ?>
</div><!-- .entry-content -->
</article><!-- #post-0 -->
 
<?php endif; ?>
 
</div><!-- #content -->
</div><!-- #primary -->
 
<?php get_sidebar(); ?>
<?php get_footer(); ?>
searchfields.php
PHP
1 2 3 4 5 6 7 8 9 10 11
<form action="<?php the_permalink(); ?>" method="GET">
<span class="em-events-search-dates">
<label><?php _e('Date') ?></label>
<?php _e('From:') ?>
<input type="text" id="em-date-start-loc" >
<input type="hidden" id="em-date-start" name="startdate" value="">
<?php _e('To:') ?> <input type="text" id="em-date-end-loc" >
<input type="hidden" id="em-date-end" name="enddate" value="">
</span>
</form>

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.