2012-06-01 5 views
0

Я создал страницу пользовательского поиска, содержащий кодWordpress Расширенный поиск

<?php 
function filter_where($where = '') { 
    $where .= " AND post_date >= '{$_GET['frmdate']}' AND post_date < '{$_GET['todate']}'"; 
    return $where; 
} 
add_filter('posts_where', 'filter_where'); 
$query = new WP_Query(array('post_type' => 'post')); 
    while($query->have_posts()) : $query->the_post(); ?> 

    <p><?php the_title(); the_date() ?></p> 

<?php endwhile; ?> 
<?php remove_filter('posts_where', 'filter_where'); wp_reset_query(); ?> 

Моя цель Поиск сообщений с «ключевые слова» между «двумя датами»

моих поисковых переменных, проходящих через URL как этот

www.something.com?page_id=372&s12=lorem&s13=ipsum&frmdate=2012-03-01&todate=2012-06-12 

Wi th my Текущий код для фильтрации результата между двумя датами работает отлично, когда мой url выглядит так: www.something.com?page_id=372&frmdate=2012-03-01&todate=2012-06-12

, когда iam добавление &s=lorem не работает как с ключевым словом, так и с датой. даже если я его добавлю (& s = lorem)

ответ

0

Обновленный Мой код ниже один его прекрасно работать с моими всеми требованиями, Не уверен, что если есть еще один разумный способ

<?php 
function filter_where($where = '') { 
    if(isset($_GET['frmdate']) && isset($_GET['todate'])){ 
     $where .= " AND post_date >= '{$_GET['frmdate']}' AND post_date < '{$_GET['todate']}'"; 
    } 
    if(isset($_GET['s12'])){ 
     $where .= " AND post_content LIKE '%{$_GET['s12']}%' " ; 
    } 
    if(isset($_GET['s13'])){ 
     $where .= " AND post_title LIKE '%{$_GET['s13']}%' " ; 
    } 
    //echo $where;exit; 
    return $where; 
} 
add_filter('posts_where', 'filter_where'); 
$query = new WP_Query(array('post_type' => 'post')); 

    while($query->have_posts()) : $query->the_post(); ?> 

    <li> 
     <h4><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h4> 
     <div class="monthDate"> <span class="date"><?php the_time('M d,Y H.i'); ?></span> <span class="month"><?php comments_number();?></span> </div> 
     <p><?php content('100'); ?></p> 
    </li> 

<?php endwhile; ?> 
<?php remove_filter('posts_where', 'filter_where'); wp_reset_query(); ?> 
0

Вместо использования пользовательской страницы вы можете просто изменить шаблон поиска, доступный в иерархии шаблонов WP. Для получения дополнительной информации см. this post.