2012-06-01 83 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(); ?> 
自定義搜索頁面

我的目標是「關鍵字」通過「兩個日期」

我的搜索變量之間搜索帖子網址這樣

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

無線th我目前的代碼來過濾兩個日期之間的結果是完美的工作時,我的網址是這樣的www.something.com?page_id=372&frmdate=2012-03-01&todate=2012-06-12

當我添加&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瞭解更多信息。