2011-10-13 98 views
0

我只是一個基本的WordPress用戶。我需要搜索框多個標準輸入(多個條件)搜索內各種自定義字段WordPress的自定義字段多個搜索標準?

例如包括以下自定義字段

顏色:_ ___
尺寸:
__ _ _
價格:_ __
條件:
__ _
折扣%:_ __
命中計數:
__ _

用戶可以輸入1以上的Fileds。
結果也應過濾多個輸入。
那麼,我怎麼能在查詢中處理這個多個條件?

對於每一個輸入都是
但是,問題多於1.
我很困惑如何針對多個標準
(以前面的方式)編寫查詢

請簡單示例。

+0

這應該在http://wordpress.stackexchange.com/ –

回答

2

這是您的示例查詢,只是爲了讓您瞭解如何編寫查詢。

$query = "SELECT * FROM `wp_pelleresuser` WHERE `status`=1"; 

if(isset($profile) && !empty($profile)) 
{ 
    $length_profile = explode(',',$profile); 
    for($i=0;$i<count($length_profile);$i++) 
    { 
     $query.= " AND FIND_IN_SET('".$length_profile[$i]."',profile_type)"; 
    } 
} 

if(isset($name) && !empty($name)) 
{ 
    $query.= " AND `first_name` LIKE '".$name."'"; 
} 

if(isset($city) && !empty($city)) 
{ 
    $query.= " AND `city_trainer` LIKE '".$city."' OR `city_studio` LIKE '".$city."' OR `city_reseller` LIKE '".$city."'"; 
} 

if(isset($state) && !empty($state)) 
{ 
    $query.= " AND `state_trainer` LIKE '".$state."' OR `state_studio` LIKE '".$state."' OR `state_reseller` LIKE '".$state."'"; 
} 

if(isset($postal) && !empty($postal)) 
{ 
    $query.= " AND `postal_trainer` LIKE '".$postal."' OR `postal_studio` LIKE '".$postal."' OR `postal_reseller` LIKE '".$postal."'"; 
} 
0

如果您想自定義您的搜索頁面並允許搜索自定義字段,可以輕鬆實現此目的。在下面的示例中,我們使用了2個自定義字段。該示例適用於企業目錄。每個企業都有自己的貿易領域和位置城市。默認的WordPress的搜索沒有附加的表單字段,但你可以按照這個來爲你的WordPress網站創建一個使用自定義字段的自定義搜索。

您需要做的第一件事是將其他字段添加到窗體。

我們想要做的是爲每個值添加兩個表單域。在我的情況下,我正在跟蹤貿易和城市。

所以你可以訪問這個link創建表單域。

一旦你創建了你的表單域並命名它們,就去你的搜索。PHP文件並將新值捕獲到變量中,$ _GET ['your field name'];

$trade = $_GET['trade']; 
$city = $_GET['city']; 

然後,您可以將值傳遞到您的查詢,其中關鍵=自定義字段名稱和值=變量 -

$args = array(
    'meta_query' => array(
     'relation' => 'AND', 
array(
      'key' => business_trade, 
'value' => $trade, 

     ), 
     array(
      'key' => business_city, 
'value' => $city, 

     ) 
    ) 
); 

全部下面的代碼。

<?php 
$trade = $_GET['trade']; 
$city = $_GET['city']; 

if ($trade && $city) { 
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$args = array(
    'meta_query' => array(
     'relation' => 'AND', 
array(
      'key' => business_trade, 
'value' => $trade, 

     ), 
     array(
      'key' => business_city, 
'value' => $city, 

     ) 
    ) 
); 
query_posts($args); 
} else { 
    query_posts('posts_per_page=4'); 
} 

if ($trade && $city) { ?> 
    <h3>Your Search For <?php echo $trade; ?> and <?php echo $city; ?></h3> 
    <?php } else { ?> 
    <h3>Title</h3> 
    <?php } if(have_posts()) : ?> 
      <?php while(have_posts()) : the_post() 
      ?> 

     <p class="no_percentage"><?php echo excerpt(15); ?> </p> 

     <span class="readmore" ><a href="<?php the_permalink(); ?>" > <?php _e('read more');?> </a> </span> 

     <?php endwhile; ?> 

     <?php else: ?> 
     <p class="notice_msg"><?php _e('Sorry, but nothing matched your search criteria.'); ?></p> 
     <?php endif; ?>