2013-02-28 100 views
0

我一直在为这个功能摔跤很久以及我希望我有足够的尊重来提供赏金。帮助将不胜感激。用%2c或逗号替换&ct_ =

// Advanced Search Check 
function ct_search_form_check($name, $taxonomy_name = null) { 
global $search_values; 

    if (!$taxonomy_name) { 
     $taxonomy_name = $name; 
    } ?> 
    <?php foreach(get_terms($taxonomy_name, 'hide_empty=0') as $t) : ?> 
     <?php if ($search_values[$name] == $t->slug) { $selected = 'checked="checked"'; } else { $selected = ''; } ?> 
      <div><input id="ct_<?php echo $name; ?>" name="ct_<?php echo $name; ?>" type="checkbox" style="margin-right:5px; margin-left:5px" <?php echo $selected; ?>value="<?php echo $t->slug; ?>"><?php echo $t->name; ?><span style="margin-left:10px"></span></input></div> 

      //recently added this part to replace duplicate taxonomy_name in url 
      <?php $data = array(); 
       while (list($name, $t->slug) = each($arr)) { 
        $data[] = "$name"; 
       } 
       echo implode($data); ?> 

    <?php endforeach; ?> 

<?php 
} 

如何将我的输出改变从

?ct_zipcode = & ct_event_type =校友& ct_ = anneverisy & ct_setting =舞厅& ct_ =酒吧&地点搜索=真

?ct_zipcode = & ct_event_type =校友%2canneverisy & ct_setting =舞厅%2cbar &地点搜索=真

+0

相关:http://stackoverflow.com/questions/15071332/query-multiple-taxonomies-group-slugs – Halcyon 2013-02-28 17:15:59

+0

您是否尝试过用urlencode? – 2013-02-28 17:16:06

+0

John你能发表一个答案吗?我不熟悉urlencode。 – Avery 2013-02-28 18:34:27

回答

0

这个工作。希望这将帮助别人

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

    if (!$taxonomy_name) { 
     $taxonomy_name = $name; 
    } ?> 

<input type="hidden" value="" name="ct_<?php echo $name; ?>" /> 
    <?php foreach(get_terms($taxonomy_name, 'hide_empty=0') as $t) : ?> 
     <?php if ($search_values[$name] == $t->slug) { $selected = 'checked="checked"'; } else { $selected = ''; } ?> 
      <div><input id="ct_<?php echo $name; ?>" name="ct_<?php echo $name; ?>" type="checkbox" style="margin-right:5px; margin-left:5px" <?php echo $selected; ?>value="<?php echo $t->slug; ?>"><?php echo $t->name; ?><span style="margin-left:10px"></span></input></div> 
      <?php 
      $data = array(); 
       while (list($name, $t->slug) = each($arr)) { 
        $data[] = "$name"; 
       } 
       echo implode($data); 
       if (!empty($_GET['ct_'])) { 
        $url = str_replace('&ct_=', '%2c', $_SERVER['QUERY_STRING']); 
        header("Location: ?$url"); 
       } ?> 
    <?php endforeach; ?> 
<?php 
}