首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅选择一个字母

仅选择一个字母
EN

Stack Overflow用户
提问于 2012-02-09 19:59:33
回答 2查看 102关注 0票数 0

下面的脚本显示了我所有商店的列表,并按字母顺序进行了排序。现在我想放入,例如$_GET' letter‘== " A ";,它将只显示以字母A开头的商店。

我该怎么做呢?

代码语言:javascript
复制
$stores = get_terms(APP_TAX_STORE, array('hide_empty' => 0, 'parent' => 0));
$list = '';
$groups = array();

// get ids of all hidden stores 
$hidden_stores_query = "SELECT ". $wpdb->prefix ."clpr_storesmeta.stores_id FROM ". $wpdb->prefix ."clpr_storesmeta WHERE ". $wpdb->prefix ."clpr_storesmeta.meta_key = 'clpr_store_active' AND ". $wpdb->prefix ."clpr_storesmeta.meta_value = 'no'";
$hidden_stores = $wpdb->get_col($hidden_stores_query);

if ($stores && is_array($stores) ) {

    foreach($stores as $store)
        $groups[strtoupper($store->name[0])][] = $store;
    if (!empty($groups)) :
        foreach($groups as $letter => $stores) {
      $old_list = $list;

      $letter_items = false;
            $list .= "\n\t" . '<h2 class="stores" id="' . apply_filters( 'the_title', $letter ) . '">' . apply_filters( 'the_title', $letter ) . '</h2>';
            $list .= "\n\t" . '<ul class="stores">';

            foreach($stores as $store) {
                if (!in_array($store->term_id, $hidden_stores)) {
                    $list .= "\n\t\t" . '<li><a href="' . get_term_link($store, APP_TAX_STORE) . '"><img src="/images/korting-winkels/'. ereg_replace("[^A-Za-z0-9]", "", strtolower(apply_filters('the_title', $store->name))).'.png" width="133" class="afbeelding" height="68" alt="' . apply_filters('the_title', $store->name). '" title="' . apply_filters('the_title', $store->name). '" /></a><br /></li>';
          $letter_items = true;
        }
            }   

            $list .= "\n\t" . '</ul>';

      if(!$letter_items)
        $list = $old_list;
        }

    endif;

} else {

    $list .= "\n\t" . '<p>' . __('Sorry, but no stores were found.', 'appthemes') .'</p>';

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-09 20:05:51

最好将它放在查询中(这样就不会提取页面上不需要的数据),如下所示:

代码语言:javascript
复制
SELECT * FROM `table` WHERE `name` LIKE '$startLetter%'

我假设这是由您的get_terms函数处理的,没有看到我真的不能给出更多细节。

票数 2
EN

Stack Overflow用户

发布于 2012-02-09 20:20:54

你可以从数据库中选择,或者如果你不想这样做,你可以这样做,

代码语言:javascript
复制
$list = array("abc","abd","xyz","aml");//assuming this is your array
foreach($list as $listValue){
    if(substr($listValue, 0 ,1) == "a"){ //instead of "a" put $_GET['letter']
        $finalarray[] = $listValue;
    }
}

//在$finalarray中,您将只有以($_GET['letter'])开头的数据

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9210447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档