カテゴリーが保存されているテーブル
WordPressのカテゴリーは、wp_termsテーブルに保存されています。
テーブルの構造
+------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------------+------+-----+---------+----------------+
| term_id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(200) | NO | MUL | | |
| slug | varchar(200) | NO | MUL | | |
| term_group | bigint(10) | NO | | 0 | |
+------------+---------------------+------+-----+---------+----------------+
カテゴリーを検索する
カテゴリーのnameを文字で検索してみたいと思います。
functions.php
function search_category()
{
global $wpdb;
$s = $_GET['s'];
$s = $wpdb->esc_like($s);
$s = '%' . $s . '%';
$sql ="
SELECT *
FROM $wpdb->terms
WHERE name LIKE %s
LIMIT 100
";
return $wpdb->get_results($wpdb->prepare($sql, $s));
}
検索ページで使ってみる
search.php
if (function_exists('search_category')) {
$categories = search_category();
}
foreach ($categories as $category) :
$term_id = $category->term_id;
$name = $category->name;
$slug = $category->slug;
$term_group = $category->term_group;
endforeach;
以上カテゴリーを検索する方法でした