1

特定の文字に属するカテゴリのページに移動するカテゴリのアルファベット順のインデックスを提供するワードプレスのプラグインを見た人はいますか? 基本的に、ABCD ... XYZ をクリックできるリストがあり、A をクリックすると、文字 A で始まるすべてのカテゴリが表示されるページに移動しますか?

1 時間以上検索しましたが、これが見つかりません... 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

SQLクエリをキャッシュするために一時的なAPIを使用できます。

于 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 に答える