概要
wp_remove_object_terms
関数は、投稿情報などに関連付けられたタクソノミーの関連付けを外すために使用します。この関数は、特定のオブジェクト(通常は投稿やカスタム投稿タイプ)から指定されたタクソノミーのタームを削除します。これにより、投稿やカスタム投稿タイプが持つ属性や分類を効果的に管理することができます。この関数は、以下のような機能を実装する際によく使われます。
- 投稿のタグを削除したい場合
- カスタムタクソノミーから特定のタームを外したい場合
- 投稿情報の分類を変更したい場合
- 自動でタームを管理するプラグインにおいて
- ショートコードに基づいて動的にタームを削除したい場合
- 特定の条件下でタームを動的にクリーニングする場合
- データの整合性を保つためにタームを削除する場合
- インポートやエクスポートの準備としてタームをリセットする場合
構文
wp_remove_object_terms( $object_id, $terms, $taxonomy );
パラメータ
$object_id
: 削除したいタクソノミーの関連付けを外す対象のオブジェクトのID。$terms
: 削除したいタームのリスト(配列またはカンマ区切りの文字列)。$taxonomy
: タームが所属するタクソノミーのスラッグ。
戻り値
成功した場合は削除されたタームのIDの配列を返し、失敗した場合はfalse
を返します。
関連する関数
使用可能なバージョン
WordPress 3.4.0以降で使用可能です。
コアファイルのパス
wp-includes/taxonomy.php
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | 〇 |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプルコード 1: 投稿からタグを削除する
$post_id = 123; // 投稿ID
$tags_to_remove = '削除したいタグ'; // 削除したいタグ
$result = wp_remove_object_terms( $post_id, $tags_to_remove, 'post_tag' );
このコードは、指定された投稿IDから特定のタグを削除します。
サンプルコード 2: カスタムタクソノミーからタームを削除する
$custom_post_id = 456; // カスタム投稿ID
$term_to_remove = '削除したいターム'; // 削除したいターム
$result = wp_remove_object_terms( $custom_post_id, $term_to_remove, 'custom_taxonomy' );
このコードでは、カスタム投稿から特定のカスタムタクソノミーのタームを削除します。
サンプルコード 3: 複数のタグを削除する
$post_id = 789; // 投稿ID
$tags_to_remove = array( 'タグ1', 'タグ2' ); // 複数のターム
$result = wp_remove_object_terms( $post_id, $tags_to_remove, 'post_tag' );
ここでは、指定した投稿から複数のタグを一度に削除しています。
サンプルコード 4: 削除成功のチェック
$post_id = 321; // 投稿ID
$terms_to_remove = '削除したいタグ';
$result = wp_remove_object_terms( $post_id, $terms_to_remove, 'post_tag' );
if ( $result !== false ) {
echo 'タグが正常に削除されました。';
} else {
echo 'タグの削除に失敗しました。';
}
このコードは、タグの削除が成功したかどうかをチェックし、メッセージを表示します。
サンプルコード 5: コールバック内で使用
function my_custom_function() {
$post_id = 111; // 投稿ID
$terms_to_remove = '削除したいターム';
wp_remove_object_terms( $post_id, $terms_to_remove, 'custom_taxonomy' );
}
add_action( 'init', 'my_custom_function' );
このサンプルコードは、init
アクションフック内で特定のタームを削除する関数を呼び出しています。