1

有没有人见过任何 wordpress 插件,它提供了按字母顺序排列的类别索引,可以将您带到属于特定字母的类别页面。基本上,有一个列表:ABCD ... XYZ,您可以单击它,当您单击 A 时,您会转到一个页面,在那里您会看到所有以字母 A 开头的类别?

我已经搜索了一个多小时,但找不到这个......我开始搞乱 MySQL 这样做,SELECT term_id as id, name as post_title FROM wp_terms ORDER BY name但这也包括类别中的标签,我只想抓住类别。

更新:

好的,所以看起来我可以通过以下方式从 wp_term_taxonomy 中获取类别:

SELECT term_taxonomy_id FROM wp_term_taxonomy WHERE taxonomy =  'category'

然后,我可以获取该数组并在此处运行它:

SELECT term_id, name FROM wp_terms WHERE term_id IN (that-array) ORDER BY name

那个怎么样?如何使用我上面的内容创建一个新表?

4

2 回答 2

0

您可以使用瞬态 api 来缓存您的 sql 查询。

于 2012-10-17T20:50:05.500 回答
0

您可以使用此函数并将字母作为参数传递

  function get_category_by_letter($letter){
    $args=array(
    'orderby' => 'name',
    'order' => 'ASC',
    'hide_empty' => 0);

    $categories=get_categories($args);
    foreach($categories as $category) {

    $catname = $category->name;
    $first_letter = substr(strip_tags($catname), 0 , 1); // get the first letter of the category
    if(strcasecmp($first_letter,$letter) != 0) continue; //if not the same letter then loop next NOTE: this is case insensitive comparison
    else{
      $cats[] = $category->term_id; //store category IDs in array
      //$cats[] = $category->name; uncomment this if you want to get category name
      //or you can start your process here and remove the return value  
        }
    }
 return $cats;
}

示例用法

  $cats = get_category_by_letter('A');
  var_dump($cats);
于 2012-10-16T04:04:26.407 回答