MENU

wp_insert_term()– Function –

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_idterm_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

タームを重複させないようにするには?

term_exists()関数を使い、タームが既に存在するかどうかを確認できます。

タクソノミーに新しいフィールドを追加できますか?

タームメタデータをadd_term_meta()で追加することで、カスタムフィールドの情報を保持できます。

タームIDはどこで確認できますか?

管理画面のタクソノミー編集ページや、get_term()関数で取得できます。

まとめ

wp_insert_term()は、WordPressのタクソノミー内に新しいタームを挿入するための便利な関数で、カテゴリーやタグなどのカスタム分類を柔軟に追加できます。

追加後のタームの操作も簡単で、様々な条件でのデータ取得や表示が可能です。

カスタマイズ例

1