ワードプレスのwp_remove_object_terms関数の使用方法・解説

概要

wp_remove_object_terms関数は、投稿情報などに関連付けられたタクソノミーの関連付けを外すために使用します。この関数は、特定のオブジェクト(通常は投稿やカスタム投稿タイプ)から指定されたタクソノミーのタームを削除します。これにより、投稿やカスタム投稿タイプが持つ属性や分類を効果的に管理することができます。この関数は、以下のような機能を実装する際によく使われます。

  1. 投稿のタグを削除したい場合
  2. カスタムタクソノミーから特定のタームを外したい場合
  3. 投稿情報の分類を変更したい場合
  4. 自動でタームを管理するプラグインにおいて
  5. ショートコードに基づいて動的にタームを削除したい場合
  6. 特定の条件下でタームを動的にクリーニングする場合
  7. データの整合性を保つためにタームを削除する場合
  8. インポートやエクスポートの準備としてタームをリセットする場合

構文

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アクションフック内で特定のタームを削除する関数を呼び出しています。

この関数について質問する


上の計算式の答えを入力してください