wp_insert_term()
は、WordPressの分類(タクソノミー)に新しいタームを追加するためのテンプレートタグです。カテゴリーやタグなどの新規タームをプログラムから簡単に作成できます。
機能の説明
wp_insert_term()
は、指定したタクソノミーに対して新しいターム(カテゴリーやタグなど)を挿入します。例えば、記事のカテゴリーやカスタムタクソノミーに新しい項目を追加する場合に便利です。
シンプルなコード例
<?php
wp_insert_term('新しいカテゴリー', 'category');
?>
この例では、カテゴリータクソノミーに「新しいカテゴリー」という名前のタームを追加します。
使い方の解説
wp_insert_term()
は、タクソノミー内に新しいタームを追加する際に使用します。ターム名、スラッグ、親タームのIDなどを引数として渡し、指定したタクソノミーにタームを作成します。
引数
$term
-
作成するタームの名前
- 型: 文字列 例:
'ニュース'
- 型: 文字列 例:
$taxonomy
-
タームを挿入するタクソノミーの名前(例:
category
,post_tag
, またはカスタムタクソノミー名)- 型: 文字列 例:
'category'
- 型: 文字列 例:
$args
-
オプションの配列で、スラッグや親タームのIDなどの追加設定を指定
- 型: 配列
array( 'slug' => 'news', 'parent' => 0, )
戻り値
- 成功時
-
作成されたタームの
term_id
とterm_taxonomy_id
を含む連想配列- 型: 配列
- エラー時
-
WP_Error
オブジェクトが返され、エラーの詳細が含まれます。- 型:
WP_Error
- 型:
オプション
'slug'
-
URLフレンドリーな名前を設定します。未指定の場合は
$term
から自動生成されます。- 型: 文字列
'parent'
-
階層構造を持つタクソノミーの場合、親タームのIDを指定します。
- 型: 整数
'description'
-
タームの説明を設定します。
- 型: 文字列
使用例
<?php
$term_id = wp_insert_term(
'最新ニュース',
'category',
array(
'slug' => 'latest-news',
'description' => '最新ニュースのカテゴリー',
'parent' => 0
)
);
if (!is_wp_error($term_id)) {
echo 'カテゴリー「最新ニュース」が追加されました。';
} else {
echo 'エラーが発生しました: ' . $term_id->get_error_message();
}
?>
この例では、category
タクソノミーに「最新ニュース」というタームを追加し、スラッグや説明を設定しています。エラーが発生した場合、エラーメッセージが表示されます。
一緒に使うことが多い関連タグ
get_term()
get_term()
は、タームの情報を取得するためのテンプレートタグです。wp_insert_term()
と一緒に使用することで、追加したタームの詳細情報を取得できます。
<?php
$term_id = wp_insert_term('新しいタグ', 'post_tag');
if (!is_wp_error($term_id)) {
$term_info = get_term($term_id['term_id'], 'post_tag');
echo '新しいタグの名前: ' . $term_info->name;
}
?>
この例では、新しいタグを追加した後、get_term()
を使って追加されたタームの情報を取得しています。
wp_delete_term()
wp_delete_term()
は、指定したタームを削除するテンプレートタグです。wp_insert_term()
で追加したタームを削除したい場合に使用します。
<?php
$term_id = wp_insert_term('削除するタグ', 'post_tag');
if (!is_wp_error($term_id)) {
wp_delete_term($term_id['term_id'], 'post_tag');
echo 'タグが削除されました。';
}
?>
この例では、post_tag
タクソノミーに新しいタグを追加し、直後に削除しています。
追加情報を取得したい場合
get_terms()で取得できるターム一覧
get_terms()
を使用すると、特定のタクソノミー内の全てのタームを取得できます。
<?php
$terms = get_terms(array('taxonomy' => 'category', 'hide_empty' => false));
foreach ($terms as $term) {
echo $term->name . ' - ' . $term->slug . '<br>';
}
?>
このコードは、カテゴリータクソノミー内のすべてのターム名とスラッグを表示します。
出力できる情報
- name: タームの名前
- slug: タームのスラッグ(URLフレンドリーな名前)
- description: タームの説明
- parent: 親タームのID
- count: タームに関連付けられた投稿数
想定されるトラブル
タームが既に存在している
同じ名前またはスラッグのタームが既にタクソノミー内に存在する場合、エラーが発生します。
解決策
is_wp_error()
を使ってエラーを確認し、必要に応じて既存のタームIDを取得します。
階層が深すぎてタームが表示されない
親タームを指定する際、階層構造が深すぎると表示に制約がかかることがあります。
解決策
階層を適切に設計し、get_terms()
のparent
引数を利用して特定の階層のタームのみ取得します。
Q&A
まとめ
wp_insert_term()
は、WordPressのタクソノミー内に新しいタームを挿入するための便利な関数で、カテゴリーやタグなどのカスタム分類を柔軟に追加できます。
追加後のタームの操作も簡単で、様々な条件でのデータ取得や表示が可能です。