Mise à jour du terme en fonction des arguments fournis.

Description

Le site $args remplacera indistinctement toutes les valeurs ayant le même nom de champ. Il faut faire attention à ne pas écraser les informations importantes à mettre à jour ou la mise à jour échouera (ou peut-être créer un nouveau terme, aucun des deux ne serait acceptable).

Les valeurs par défaut définissent 'alias_of', 'description', 'parent' et 'slug' s'ils ne sont pas définis dans le champ $args déjà.

'alias_of' créera un groupe de termes, s'il n'existe pas déjà, et le mettra à jour pour le groupe de termes. $term.

Si l'argument 'slug' dans $args est manquant, alors le 'name' sera utilisé. Si vous définissez 'slug' et qu'il n'est pas unique, alors un WP_Error est retourné. Si vous ne passez aucun slug, alors un unique sera créé.

Paramètres

$term_id

(int)(Obligatoire)L'identifiant du terme.

$taxonomie

(chaîne de caractères)(Obligatoire)La taxonomie du terme.

$args

(tableau|chaîne de caractères)(Facultatif)Tableau ou chaîne d'arguments pour la mise à jour d'un terme.

  • 'alias_de'
    (chaîne de caractères) Slug du terme dont il faut faire de ce terme un alias. Chaîne vide par défaut. Accepte un slug de terme.
  • 'description'
    (chaîne de caractères) La description du terme. Chaîne vide par défaut.
  • "parent
    (int) L'id du terme parent. Par défaut 0.
  • 'slug'
    (chaîne de caractères) Le slug du terme à utiliser. Chaîne vide par défaut.

Valeur par défaut : array()

Retourner

(tableau|WP_Error) Un tableau contenant les term_id et term_taxonomy_id, WP_Error sinon.

Plus d'informations

L'un des $args suivants sera mis à jour sur le terme :

  • nom
  • slug
  • term_group
  • description
  • parent
  • alias_de (voir ci-dessus)

Source

Fichier : wp-includes/taxonomy.php

functionwp_update_term($term_id,$taxonomy,$args=array()){global$wpdb;if(!taxonomy_exists($taxonomy)){returnnewWP_Error('invalid_taxonomy',__('Invalid taxonomy.'));}$term_id=(int)$term_id;// First, get all of the original args.$term=get_term($term_id,$taxonomy);if(is_wp_error($term)){return$term;}if(!$term){returnnewWP_Error('invalid_term',__('Empty Term.'));}$term=(array)$term->data;// Escape data pulled from DB.$term=wp_slash($term);// Merge old and new args with new args overwriting old ones.$args=array_merge($term,$args);$defaults=array('alias_of'=>'','description'=>'','parent'=>0,'slug'=>'',);$args=wp_parse_args($args,$defaults);$args=sanitize_term($args,$taxonomy,'db');$parsed_args=$args;// expected_slashed ($name)$name=wp_unslash($args['name']);$description=wp_unslash($args['description']);$parsed_args['name']=$name;$parsed_args['description']=$description;if(''===trim($name)){returnnewWP_Error('empty_term_name',__('A name is required for this term.'));}if((int)$parsed_args['parent']>0&&!term_exists((int)$parsed_args['parent'])){returnnewWP_Error('missing_parent',__('Parent term does not exist.'));}$empty_slug=false;if(empty($args['slug'])){$empty_slug=true;$slug=sanitize_title($name);}else{$slug=$args['slug'];}$parsed_args['slug']=$slug;$term_group=isset($parsed_args['term_group'])?$parsed_args['term_group']:0;if($args['alias_of']){$alias=get_term_by('slug',$args['alias_of'],$taxonomy);if(!empty($alias->term_group)){// The alias we want is already in a group, so let's use that one.$term_group=$alias->term_group;}elseif(!empty($alias->term_id)){/*
			 * The alias is not in a group, so we create a new one
			 * and add the alias to it.
			 */$term_group=$wpdb->get_var("SELECT MAX(term_group) FROM $wpdb->terms")+1;wp_update_term($alias->term_id,$taxonomy,array('term_group'=>$term_group,));}$parsed_args['term_group']=$term_group;}/**
	 * Filters the term parent.
	 *
	 * Hook to this filter to see if it will cause a hierarchy loop.
	 *
	 * @since 3.1.0
	 *
	 * @param int    $parent      ID of the parent term.
	 * @param int    $term_id     Term ID.
	 * @param string $taxonomy    Taxonomy slug.
	 * @param array  $parsed_args An array of potentially altered update arguments for the given term.
	 * @param array  $args        An array of update arguments for the given term.
	 */$parent=(int)apply_filters('wp_update_term_parent',$args['parent'],$term_id,$taxonomy,$parsed_args,$args);// Check for duplicate slug.$duplicate=get_term_by('slug',$slug,$taxonomy);if($duplicate&&$duplicate->term_id!==$term_id){// If an empty slug was passed or the parent changed, reset the slug to something unique.// Otherwise, bail.if($empty_slug||($parent!==(int)$term['parent'])){$slug=wp_unique_term_slug($slug,(object)$args);}else{/* translators: %s: Taxonomy term slug. */returnnewWP_Error('duplicate_term_slug',sprintf(__('The slug “%s” is already in use by another term.'),$slug));}}$tt_id=(int)$wpdb->get_var($wpdb->prepare("SELECT tt.term_taxonomy_id FROM $wpdb->term_taxonomy AS tt INNER JOIN $wpdb->terms AS t ON tt.term_id = t.term_id WHERE tt.taxonomy = %s AND t.term_id = %d",$taxonomy,$term_id));// Check whether this is a shared term that needs splitting.$_term_id=_split_shared_term($term_id,$tt_id);if(!is_wp_error($_term_id)){$term_id=$_term_id;}/**
	 * Fires immediately before the given terms are edited.
	 *
	 * @since 2.9.0
	 *
	 * @param int    $term_id  Term ID.
	 * @param string $taxonomy Taxonomy slug.
	 */do_action('edit_terms',$term_id,$taxonomy);$data=compact('name','slug','term_group');/**
	 * Filters term data before it is updated in the database.
	 *
	 * @since 4.7.0
	 *
	 * @param array  $data     Term data to be updated.
	 * @param int    $term_id  Term ID.
	 * @param string $taxonomy Taxonomy slug.
	 * @param array  $args     Arguments passed to wp_update_term().
	 */$data=apply_filters('wp_update_term_data',$data,$term_id,$taxonomy,$args);$wpdb->update($wpdb->terms,$data,compact('term_id'));if(empty($slug)){$slug=sanitize_title($name,$term_id);$wpdb->update($wpdb->terms,compact('slug'),compact('term_id'));}/**
	 * Fires immediately after a term is updated in the database, but before its
	 * term-taxonomy relationship is updated.
	 *
	 * @since 2.9.0
	 *
	 * @param int    $term_id  Term ID
	 * @param string $taxonomy Taxonomy slug.
	 */do_action('edited_terms',$term_id,$taxonomy);/**
	 * Fires immediate before a term-taxonomy relationship is updated.
	 *
	 * @since 2.9.0
	 *
	 * @param int    $tt_id    Term taxonomy ID.
	 * @param string $taxonomy Taxonomy slug.
	 */do_action('edit_term_taxonomy',$tt_id,$taxonomy);$wpdb->update($wpdb->term_taxonomy,compact('term_id','taxonomy','description','parent'),array('term_taxonomy_id'=>$tt_id));/**
	 * Fires immediately after a term-taxonomy relationship is updated.
	 *
	 * @since 2.9.0
	 *
	 * @param int    $tt_id    Term taxonomy ID.
	 * @param string $taxonomy Taxonomy slug.
	 */do_action('edited_term_taxonomy',$tt_id,$taxonomy);/**
	 * Fires after a term has been updated, but before the term cache has been cleaned.
	 *
	 * The {@see 'edit_$taxonomy'} hook is also available for targeting a specific
	 * taxonomy.
	 *
	 * @since 2.3.0
	 *
	 * @param int    $term_id  Term ID.
	 * @param int    $tt_id    Term taxonomy ID.
	 * @param string $taxonomy Taxonomy slug.
	 */do_action('edit_term',$term_id,$tt_id,$taxonomy);/**
	 * Fires after a term in a specific taxonomy has been updated, but before the term
	 * cache has been cleaned.
	 *
	 * The dynamic portion of the hook name, `$taxonomy`, refers to the taxonomy slug.
	 *
	 * @since 2.3.0
	 *
	 * @param int $term_id Term ID.
	 * @param int $tt_id   Term taxonomy ID.
	 */do_action("edit_{$taxonomy}",$term_id,$tt_id);/** This filter is documented in wp-includes/taxonomy.php */$term_id=apply_filters('term_id_filter',$term_id,$tt_id);clean_term_cache($term_id,$taxonomy);/**
	 * Fires after a term has been updated, and the term cache has been cleaned.
	 *
	 * The {@see 'edited_$taxonomy'} hook is also available for targeting a specific
	 * taxonomy.
	 *
	 * @since 2.3.0
	 *
	 * @param int    $term_id  Term ID.
	 * @param int    $tt_id    Term taxonomy ID.
	 * @param string $taxonomy Taxonomy slug.
	 */do_action('edited_term',$term_id,$tt_id,$taxonomy);/**
	 * Fires after a term for a specific taxonomy has been updated, and the term
	 * cache has been cleaned.
	 *
	 * The dynamic portion of the hook name, `$taxonomy`, refers to the taxonomy slug.
	 *
	 * @since 2.3.0
	 *
	 * @param int $term_id Term ID.
	 * @param int $tt_id   Term taxonomy ID.
	 */do_action("edited_{$taxonomy}",$term_id,$tt_id);/** This action is documented in wp-includes/taxonomy.php */do_action('saved_term',$term_id,$tt_id,$taxonomy,true);/** This action is documented in wp-includes/taxonomy.php */do_action("saved_{$taxonomy}",$term_id,$tt_id,true);returnarray('term_id'=>$term_id,'term_taxonomy_id'=>$tt_id,);}

Related

Utilise

Utilisations Description
wp-includes/taxonomy.php : saved_term

Se déclenche après qu'un terme a été sauvegardé, et que le cache des termes a été effacé.

wp-includes/taxonomy.php : saved_{$taxonomy}

Se déclenche après qu'un terme d'une taxonomie spécifique a été sauvegardé, et que le cache des termes a été effacé.

wp-includes/taxonomy.php : wp_update_term_data

Filtre les données des termes avant leur mise à jour dans la base de données.

wp-includes/taxonomy.php : edit_terms

Se déclenche immédiatement avant que les termes donnés soient édités.

wp-includes/taxonomy.php : termes_édités

Se déclenche immédiatement après la mise à jour d'un terme dans la base de données, mais avant la mise à jour de sa relation terme-taxonomie.

wp-includes/l10n.php : __()

Récupère la traduction de $text.

wp-includes/formatting.php : wp_slash()

Ajoute des barres obliques à une chaîne de caractères ou ajoute récursivement des barres obliques aux chaînes de caractères dans un tableau.

wp-includes/formatting.php : wp_unslash()

Supprime les barres obliques d'une chaîne de caractères ou supprime récursivement les barres obliques des chaînes de caractères dans un tableau.

wp-includes/formatting.php : sanitize_title()

Sanitise une chaîne de caractères en un slug, qui peut être utilisé dans les URL ou les attributs HTML.

wp-includes/functions.php : wp_parse_args()

Fusionne les arguments définis par l'utilisateur dans le tableau defaults.

wp-includes/taxonomy.php : clean_term_cache()

Supprime tous les identifiants des termes du cache.

wp-includes/taxonomy.php : wp_update_term()

Mise à jour du terme en fonction des arguments fournis.

wp-includes/taxonomy.php : wp_unique_term_slug()

Rendra le slug unique, s'il ne l'est pas déjà.

wp-includes/taxonomy.php : wp_update_term_parent

Filtre le parent du terme.

wp-includes/taxonomy.php : edit_term_taxonomy

Se déclenche immédiatement avant la mise à jour d'une relation terme-taxonomie.

wp-includes/taxonomy.php : edited_term_taxonomy

Se déclenche immédiatement après la mise à jour d'une relation terme-taxonomie.

wp-includes/taxonomy.php : edit_term

Se déclenche après qu'un terme a été mis à jour, mais avant que le cache des termes ait été nettoyé.

wp-includes/taxonomy.php : edit_{$taxonomy}

Se déclenche après qu'un terme d'une taxonomie spécifique a été mis à jour, mais avant que le cache des termes ait été nettoyé.

wp-includes/taxonomy.php : terme_modifié

Se déclenche après qu'un terme a été mis à jour, et que le cache des termes a été nettoyé.

wp-includes/taxonomy.php : édité_{$taxonomie}

Se déclenche après qu'un terme pour une taxonomie spécifique a été mis à jour, et que le cache des termes a été nettoyé.

wp-includes/taxonomy.php : term_id_filter

Filtre l'identifiant du terme après la création d'un nouveau terme.

wp-includes/taxonomy.php : sanitize_term()

Assainit tous les champs de termes.

wp-includes/taxonomy.php : term_exists()

Détermine si un terme de taxonomie existe.

wp-includes/taxonomy.php : get_term_by()

Récupère toutes les données des termes de la base de données par champ et données de terme.

wp-includes/taxonomy.php : taxonomy_exists()

Détermine si le nom de la taxonomie existe.

wp-includes/taxonomy.php : get_term()

Récupérer toutes les données des termes de la base de données par ID de terme.

wp-includes/plugin.php : apply_filters()

Appelle les fonctions de rappel qui ont été ajoutées à un crochet de filtre.

wp-includes/plugin.php : do_action()

Exécute les fonctions accrochées à un crochet d'action spécifique.

wp-includes/wp-db.php : wpdb::get_var()

Récupère une variable de la base de données.

wp-includes/wp-db.php : wpdb::update()

Met à jour une ligne dans la table.

wp-includes/wp-db.php : wpdb::prepare()

Prépare une requête SQL pour une exécution sûre.

wp-includes/load.php : is_wp_error()

Vérifie si la variable donnée est une erreur WordPress.

wp-includes/class-wp-error.php : WP_Error::__construct()

Initialise l'erreur.

Utilisé par

Utilisé par Description
wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php : WP_REST_Terms_Controller::update_item()

Met à jour un seul terme d'une taxonomie.

wp-admin/includes/taxonomy.php : wp_insert_category()

Met à jour une catégorie existante ou crée une nouvelle catégorie.

wp-admin/includes/ajax-actions.php : wp_ajax_inline_save_tax()

Gestionnaire Ajax pour l'enregistrement rapide des modifications pour un terme.

wp-includes/taxonomy.php : wp_check_term_hierarchy_for_loops()

Vérifie le sous-ensemble donné de la hiérarchie des termes pour les boucles de hiérarchie.

wp-includes/taxonomy.php : wp_update_term()

Mise à jour du terme en fonction des arguments fournis.

wp-includes/taxonomy.php : wp_insert_term()

Ajoute un nouveau terme à la base de données.

wp-includes/nav-menu.php : wp_update_nav_menu_object()

Enregistre les propriétés d'un menu ou crée un nouveau menu avec ces propriétés.

wp-includes/class-wp-xmlrpc-server.php : wp_xmlrpc_server::wp_editTerm()

Modifier un terme.

Changelog

Version Description
2.3.0 Introduit.