Modifier en masse les titres de produits WooCommerce : remplacer, supprimer, casse
Les titres de produits se dégradent par lots : une taille écrite dans des centaines de noms et qui a changé depuis, un code fournisseur à la fin de chaque titre, tout un import en capitales. Modifier en masse les titres de produits WooCommerce avec BEAR se fait dans l'onglet Modification groupée (Bulk Edit), avec la ligne du titre, pour tous les produits d'un filtre ou pour les produits que vous cochez. Voici les travaux sur les titres les plus fréquents et la manière exacte dont la ligne du titre les traite : remplacer et supprimer des mots, changer la casse, retirer le SKU, ajouter des données au nom, et corriger les slugs qui ne suivent pas un titre renommé.
Comment fonctionne la ligne du titre
La ligne du titre se trouve dans le groupe de texte de l'onglet Modification groupée, à côté de la description, de la description courte, du slug du produit et du SKU. Cochez-la, saisissez du texte dans son champ et choisissez l'un des quatre comportements : ajouter à la fin (append) ajoute votre texte après le titre, ajouter au début (prepend) avant lui, nouveau (new) remplace le titre entier, et remplacer (replace) cherche un morceau de texte dans le titre et met autre chose à sa place. La liste variable à côté du champ insère des paramètres substituables qui sont renseignés séparément pour chaque produit. Ces mécanismes sont communs avec la description, que modifier en masse les descriptions de produits détaille ; cette page porte sur ce qui compte pour les titres.
L'opération s'exécute sur les produits que l'éditeur contient à cet instant : le résultat de l'onglet Filtres sur toutes ses pages, ou seulement les produits cochés quand certains le sont. Les produits cochés ont priorité sur le filtre. Essayez chaque nouvelle opération sur deux ou trois produits cochés d'abord.
Rechercher et remplacer un mot dans les titres de produits
- Réduisez la sélection de produits dans l'onglet Filtres. Le filtre Titre du produit ... (Product title ...) accepte une expression avec les comportements CONTIENT (LIKE) (contient), EXACT, PAS (NOT), COMMENCE PAR (BEGIN) et FINIT PAR (END) : CONTIENT avec
(35x35)ne laisse donc que les titres qui le contiennent. - Dans l'onglet Modification groupée, cochez la ligne du titre et réglez son comportement sur remplacer. Un second champ, remplacer par le texte (replace to text), apparaît avec un interrupteur même casse (same case) / ignorer la casse (ignore case).
- Saisissez ce qu'il faut chercher dans le premier champ et ce qu'il faut mettre à la place dans remplacer par le texte :
(35x35)et(30x30), ouAdultetMinor. Retirer l'ancien mot et ajouter le nouveau est une seule opération. - Lancez l'opération, puis vérifiez quelques titres dans le tableau.
La recherche porte sur du texte brut, pas sur un motif. Elle correspond exactement aux caractères saisis, n'importe où dans le titre, y compris à l'intérieur de mots plus longs : remplacer Pro modifie aussi Product et Protein. Incluez l'espace voisin, Pro, ou la ponctuation pour rendre la correspondance précise. même casse ne correspond qu'à la casse que vous avez saisie, ignorer la casse à n'importe quelle casse. Il n'y a pas de caractères génériques : « supprimer le dernier mot, quel qu'il soit » ne peut donc pas s'exprimer ; regroupez les titres selon ce qu'ils ont en commun avec le filtre FINIT PAR ou COMMENCE PAR et lancez un remplacement par groupe.
Supprimer un mot des titres de produits
Pour supprimer un mot, lancez le même remplacement en laissant remplacer par le texte vide. Cherchez le mot avec l'une de ses espaces, par exemple Sale, pour que le titre ne garde pas de double espace. WordPress supprime les espaces au début et à la fin d'un titre quand il l'enregistre, mais pas à l'intérieur. Si des doubles espaces subsistent malgré tout, lancez un second remplacement avec deux espaces dans le premier champ et une espace dans remplacer par le texte.
Changer la casse des titres de produits
La liste variable contient quatre fonctions de chaîne qui prennent le titre actuel de chaque produit et en changent la casse. Utilisez-en une seule dans le champ du titre avec le comportement nouveau :
| Variable | Résultat pour « blue COTTON t-shirt » |
|---|---|
{DO_STRING_DOWN} | blue cotton t-shirt |
{DO_STRING_UP} | BLUE COTTON T-SHIRT |
{DO_STRING_UP_FIRST} | Blue COTTON t-shirt (seule la première lettre change) |
{DO_STRING_TITLE} | Blue Cotton T-Shirt |
{DO_STRING_TITLE} met une majuscule à chaque mot et passe toutes les autres lettres en minuscules : les sigles et les graphies de marque changent donc aussi, USB devient Usb, iPhone devient Iphone. Lancez-la sur un filtre qui exclut de tels titres, ou corrigez-les ensuite par un remplacement. Les fonctions marchent avec tous les alphabets, lettres accentuées et cyrilliques comprises.
Pour appliquer une règle à chaque titre enregistré depuis l'éditeur en masse, utilisez le filtre woobe_before_update_product_field, qui reçoit chaque nouvelle valeur avant son écriture. La clé du titre est post_title ; les anciens extraits qui testent title ne correspondent jamais. Cet exemple réduit les espaces répétées dans chaque titre que BEAR enregistre :
/*
* BEAR: clean every product title saved from the bulk editor.
* Child theme functions.php or a code snippets plugin.
*/
add_filter( 'woobe_before_update_product_field', function ( $value, $product_id, $field_key ) {
if ( 'post_title' === $field_key && is_string( $value ) ) {
$value = trim( preg_replace( '/\s{2,}/u', ' ', $value ) );
}
return $value;
}, 10, 3 );
Remplacez la ligne à l'intérieur de la condition par $value = mb_strtolower( $value ); pour forcer des titres en minuscules, ou par votre propre règle. D'autres filtres de ce genre sont listés dans plus de réglages (implicites).
Retirer le SKU des titres, ou y ajouter des données de produit
Les variables sont aussi renseignées à l'intérieur du texte recherché d'un remplacement, séparément pour chaque produit. Pour retirer de son titre le SKU propre à chaque produit, utilisez le comportement remplacer, mettez {SKU} dans le premier champ et laissez remplacer par le texte vide. L'onglet Filtres ne peut pas faire la même comparaison : une valeur de filtre est prise littéralement, donc un filtre de titre contenant une variable ne trouve rien.
Soyez prudent avec les séparateurs. Si le SKU figure dans le titre sous la forme Hoodie - HD-102, la recherche - {SKU} le retire proprement, mais pour un produit sans SKU la même recherche devient simplement - et retire de ce titre tous les tirets entourés d'espaces. Avant une telle exécution, ajoutez à votre filtre le filtre SKU avec le comportement Vide (Empty) : s'il ne trouve rien, tous les produits ont un SKU et le séparateur est sûr ; sinon, cherchez {SKU} seul.
Les mêmes paramètres substituables ajoutent des données aux titres. Avec le comportement ajouter à la fin et le texte - {attribute:pa_brand}, chaque titre reçoit l'attribut de marque du produit ; {SKU}, {product_cat} (les noms des catégories), {tags} et {meta:your_meta_key} fonctionnent de la même façon. Un produit sans valeur reçoit un paramètre vide : écartez donc ces produits par un filtre d'abord, sinon le séparateur reste seul à la fin de leurs titres. Mettez au plus un paramètre {meta:...} ou {attribute:...} dans une même opération, et ne le combinez pas avec {tags} ou {product_cat} : avec deux d'entre eux dans le même texte, le paramètre est mal lu et supprimé. Lancez une seconde opération pour la seconde valeur.
Slugs des produits renommés et copiés
Changer un titre ne change pas le slug du produit, la dernière partie de son URL. C'est généralement ce que l'on veut, car les anciens liens continuent de fonctionner. Cela devient un problème avec les copies : un produit dupliqué puis renommé garde un slug fabriqué à partir du titre d'origine, et cinquante copies renommées font cinquante URL erronées.
- Régénérer à partir du titre. Cochez la ligne slug du produit (product slug), laissez son champ vide et choisissez nouveau. Pour les produits publiés, WordPress construit un nouveau slug à partir du titre actuel et ajoute
-2,-3quand un slug est déjà pris. Les produits en brouillon reçoivent leur slug à leur publication. - L'écrire à partir d'une variable. Mettez
{TITLE}, ou{TITLE}-{SKU}, dans la ligne du slug du produit avec nouveau ; WordPress transforme le texte en slug valide. La FAQ copier le titre dans le slug montre la même chose.
Quand le slug d'un produit publié change, WordPress se souvient de l'ancien et redirige les visiteurs qui arrivent par l'ancienne URL. Une courte vérification de quelques URL de produits après l'exécution reste utile. La ligne du slug du produit ne fait pas partie de la modification en masse dans la version gratuite ; voir ce que la version gratuite peut modifier.
Titres des variations
WooCommerce construit le titre d'une variation à partir du titre du parent et des valeurs d'attributs de la variation : les variations se renomment donc par leur parent, modifiez les titres des parents et les variations suivent. Tant que l'interrupteur des variations de l'éditeur est activé, la ligne du titre est masquée dans l'onglet Modification groupée ; désactivez les variations pour renommer les parents. La raison pour laquelle certains titres de variation affichent les attributs et d'autres non est expliquée dans titres de variation avec attributs.
Vérifier le résultat et annuler
- Lancez les nouvelles opérations d'abord sur quelques produits cochés, puis sur le filtre complet.
- Cherchez les doubles espaces, les séparateurs restés seuls et les mots trouvés à l'intérieur de mots plus longs.
- Si le résultat est mauvais, annulez l'opération dans l'onglet Historique : il conserve le titre précédent de chaque produit de l'exécution. La version gratuite ne garde que les deux dernières opérations : annulez donc avant d'en lancer d'autres.
Si une opération sur les titres ne se comporte pas comme décrit, posez la question sur le forum de support de BEAR avec un exemple de titre avant et après et le texte exact que vous avez saisi.