wp_set_post_terms() 関数の概要
wp_set_post_terms()
関数は、指定された投稿に対してタームを設定するためのWordPress関数です。この関数を使用することで、投稿に対してカテゴリ、タグ、カスタムタクソノミーなどのタームを関連付けることができます。既存のタームを更新したり、新しいタームを追加したりすることができます。
パラメータの説明
wp_set_post_terms()
関数には、以下のパラメータを設定することができます:
$post_id
(int) – 必須: タームを設定する投稿のIDを指定します。例:123
$terms
(array|string) – 必須: 設定するタームのID、名前、スラッグの配列またはカンマ区切りの文字列。例:[1, 2, 3]
または'term1, term2'
$taxonomy
(string) – 必須: タームが属するタクソノミーの名前を指定します。例:'category'
$append
(bool) – オプション: trueを指定すると、既存のタームに新しいタームを追加します。falseを指定すると、既存のタームを置き換えます。デフォルトは false です。
戻り値
成功した場合、wp_set_post_terms()
関数は設定されたタームのIDの配列を返します。
失敗した場合、WP_Error
オブジェクトが返されることがあります。
使用例
以下は、wp_set_post_terms()
関数を使用して特定の投稿にカテゴリタームを設定する例です:
<?php
$post_id = 123; // タームを設定する投稿のID
$terms = array(1, 2, 3); // 設定するタームのIDの配列
$taxonomy = 'category'; // タクソノミーの名前
$result = wp_set_post_terms($post_id, $terms, $taxonomy);
if (!is_wp_error($result)) {
echo 'タームが正常に設定されました。';
} else {
echo 'タームの設定に失敗しました: ' . $result->get_error_message();
}
?>
この例では、IDが123の投稿に対して、IDが1, 2, 3のカテゴリタームを設定し、成功した場合は設定成功のメッセージを表示します。
エラーハンドリング
wp_set_post_terms()
関数の実行に失敗した場合、WP_Error
オブジェクトが返されます。エラーメッセージを取得するには、以下のようにします:
<?php
if (is_wp_error($result)) {
echo 'エラー: ' . $result->get_error_message();
}
?>
追加の例
既存のタームに新しいタームを追加する場合、$append
パラメータをtrueに設定します:
<?php
$post_id = 123; // タームを設定する投稿のID
$new_terms = array(4, 5); // 追加するタームのIDの配列
$taxonomy = 'category'; // タクソノミーの名前
$append = true; // 既存のタームに新しいタームを追加
$result = wp_set_post_terms($post_id, $new_terms, $taxonomy, $append);
if (!is_wp_error($result)) {
echo 'タームが正常に追加されました。';
} else {
echo 'タームの追加に失敗しました: ' . $result->get_error_message();
}
?>
この例では、IDが123の投稿に対して、新しいタームID 4, 5を既存のカテゴリタームに追加しています。
関連する関数
wp_get_post_terms()
: 指定された投稿に関連付けられたタームを取得するための関数です。wp_set_object_terms()
: 投稿以外のオブジェクトに対してタームを設定するための関数です。get_the_terms()
: 指定された投稿に関連付けられたターム情報を取得するための関数です。the_terms()
: 指定された投稿に関連付けられたタームをリンク付きで表示するための関数です。