2012-08-12 82 views
0

我爲我的基於場地的項目使用wordpress的屬性主題。在那裏有一個基於自定義分類法的搜索,我需要的幫助是位置。WordPress的自定義分類下拉列表,帶有孩子和層次結構

最初我有國家和城市 - 但發現後,我似乎無法填充城市基於用戶選擇爲國家(AJAX我雖然,但我不知道如何做到這一點,甚至衝浪後淨數小時)。我看到一篇文章說要將它製作成我稱之爲Location的一個分類標準,現在這是一個分層分類標準,其中有一個城市作爲兒童

我遇到問題的是,對於我搜索的這是一個顯示城市而不是層次結構的下拉菜單!

所以它看起來像(例如)

巴西
佛羅倫薩
意大利
墨西哥
美國

它應該顯示它作爲

巴西
意大利
-Florence
名 墨西哥
美國

的下拉菜單都被稱爲像

<div class="left"> 
    <label for="ct_state"><?php _e('Location', 'contempo'); ?></label> 
    <?php ct_search_form_select('country'); ?> 
</div> 

被調用的函數

function ct_search_form_select($name, $taxonomy_name = null) { 
    global $search_values; 

    if (!$taxonomy_name) { 
     $taxonomy_name = $name; 
    } 
    ?> 
    <select id="ct_<?php echo $name; ?>" name="ct_<?php echo $name; ?>"> 
     <option value="0"><?php _e('Any', 'contempo'); ?></option> 
     <?php foreach(get_terms($taxonomy_name, 'hide_empty=0') as $t) : ?> 
      <?php if ($search_values[$name] == $t->slug) { $selected = 'selected="selected" '; } else { $selected = ''; } ?> 
      <option <?php echo $selected; ?>value="<?php echo $t->slug; ?>"><?php echo $t->name; ?></option> 
     <?php endforeach; ?> 
    </select> 
    <?php 
} 

正如你可以看到它也拉一個變量名爲$ search_values這是如何編譯搜索查詢中的所有選擇。這個地方有沒有快速修復?我試着做不同的功能,我只是無法得到任何工作:(請幫助我的人

感謝這麼多 nickey

+0

解決!見下文 – 2012-08-13 07:11:11

回答

0

有一個朋友幫我出這個 - 櫃面任何人有這個問題,創造了一個新功能,只是對那些下拉菜單

function ct_location_form_select($name, $tax_name = null, $parent = null) { 
    global $search_values; 

    if (!$tax_name) { 
     $tax_name = $name; 
    } 

    $tax_array['hide_empty'] = 0; 
    $tax_array['parent'] = ($parent) ? $parent : 0; 
    $tax_terms = get_terms($tax_name, $tax_array); 

    if ($parent) { 
     foreach($tax_terms as $t) { 
      if ($search_values[$name] == $t->slug) { $selected = 'selected="selected"'; } else { $selected = ''; } 
      ?> 
      <option value="<?php echo $t->slug; ?>" <?php echo $selected; ?>><?php echo get_option_spaces($tax_name, $t->term_id) . $t->name; ?></option> 
      <?php 
      if (get_term_children($t->term_id, $tax_name)) { 
       ct_location_form_select($name, $tax_name, $t->term_id); 
      } 
     } 
    } else { 
    ?> 
    <select id='ct_<?php echo $name; ?>' name='ct_<?php echo $name; ?>'> 
    <option value="0"><?php _e('Any', 'contempo'); ?></option> 
    <?php foreach($tax_terms as $t) { ?> 
    <?php if ($search_values[$name] == $t->slug) { $selected = 'selected="selected" '; } else { $selected = ''; } ?> 
    <option <?php echo $selected; ?>value="<?php echo $t->slug; ?>"><?php echo $t->name; ?></option> 
    <?php 
      if (get_term_children($t->term_id, $tax_name)) { 
       ct_location_form_select($name, $tax_name, $t->term_id); 
      } 
     } 
    ?> 
    </select> 
    <?php 
    } 
} 

乾杯!

相關問題