Edición en masa de títulos de producto en WooCommerce: reemplazar y quitar
Los títulos de producto se estropean por lotes: una talla escrita en cientos de nombres que ha cambiado, un código de proveedor al final de cada título, una importación entera en mayúsculas. La edición en masa de títulos de producto en WooCommerce se hace en BEAR en la pestaña Edición en masa (Bulk Edit) con la fila del título, para todos los productos de un filtro o para los productos que marques. A continuación verás los trabajos con títulos que surgen con más frecuencia y cómo los resuelve exactamente la fila del título: reemplazar y quitar palabras, cambiar mayúsculas y minúsculas, quitar el SKU, añadir datos al nombre y corregir los slugs que no siguen a un título renombrado.
Cómo funciona la fila del título
La fila del título está en el grupo de texto de la pestaña Edición en masa, junto a la descripción, la descripción corta, el slug del producto y el SKU. Márcala, escribe en su campo y elige uno de los cuatro comportamientos: añadir al final (append) añade tu texto después del título, añadir al principio (prepend) antes, nuevo (new) sustituye el título entero y reemplazar (replace) busca un fragmento de texto dentro del título y pone otra cosa en su lugar. La lista variable junto al campo inserta marcadores que se rellenan por separado para cada producto. Estos mecanismos son compartidos con la descripción, que la edición en masa de descripciones de producto explica en detalle; esta página trata de lo que importa para los títulos.
La operación se ejecuta sobre los productos que el editor tiene cargados en ese momento: el resultado de la pestaña Filtros (Filters) en todas sus páginas, o solo los productos marcados cuando hay alguno marcado. Los productos marcados tienen prioridad sobre el filtro. Prueba siempre cada operación nueva con dos o tres productos marcados.
Buscar y reemplazar una palabra en los títulos de producto
- Acota los productos en la pestaña Filtros. El filtro Título del producto ... (Product title ...) acepta una frase con los comportamientos CONTIENE (LIKE) (contiene), EXACTO (EXACT), NO (NOT), EMPIEZA POR (BEGIN) y TERMINA EN (END), así que CONTIENE con
(35x35)deja solo los títulos que lo contienen. - En la pestaña Edición en masa marca la fila del título y fija su comportamiento en reemplazar. Aparece un segundo campo, reemplazar por texto (replace to text), con un interruptor misma mayúsculas/minúsculas (same case) / ignorar mayúsculas/minúsculas (ignore case).
- Escribe en el primer campo lo que quieres buscar y en reemplazar por texto lo que debe ir en su lugar:
(35x35)y(30x30), oAdultyMinor. Quitar la palabra antigua y poner la nueva es una sola operación. - Ejecútala y comprueba unos cuantos títulos en la tabla.
La búsqueda es texto sin formato, no un patrón. Coincide con los caracteres tal como los escribes, en cualquier parte del título, incluso dentro de palabras más largas: reemplazar Pro también cambia Producto y Proteína. Incluye el espacio contiguo, Pro, o un signo de puntuación para que la coincidencia sea específica. misma mayúsculas/minúsculas solo coincide con las mayúsculas y minúsculas que escribiste, ignorar mayúsculas/minúsculas con cualquier combinación. No hay comodines, así que «quitar la última palabra, sea cual sea» no se puede expresar; agrupa los títulos por lo que tienen en común con el filtro TERMINA EN o EMPIEZA POR y haz un reemplazo por grupo.
Quitar una palabra de los títulos de producto
Para quitar una palabra, ejecuta el mismo reemplazo con reemplazar por texto vacío. Busca la palabra junto con uno de sus espacios, por ejemplo Sale, para que el título no conserve un espacio doble. WordPress recorta los espacios al principio y al final de un título cuando se guarda, pero no los de dentro. Si aun así quedan espacios dobles, haz un segundo reemplazo con dos espacios en el primer campo y un espacio en reemplazar por texto.
Cambiar mayúsculas y minúsculas en los títulos de producto
La lista variable tiene cuatro funciones de cadena que toman el título actual de cada producto y cambian su capitalización. Usa una de ellas sola en el campo del título con el comportamiento nuevo:
| Variable | Resultado para "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 (solo cambia la primera letra) |
{DO_STRING_TITLE} | Blue Cotton T-Shirt |
{DO_STRING_TITLE} pone en mayúscula cada palabra y en minúscula todas las demás letras, así que también cambian las siglas y las grafías de marca: USB pasa a Usb, iPhone pasa a Iphone. Ejecútala con un filtro que deje fuera esos títulos, o corrígelos después con un reemplazo. Las funciones sirven con cualquier alfabeto, incluidas las letras con tilde y las cirílicas.
Para aplicar una regla a todos los títulos que se guarden desde el editor masivo, usa el filtro woobe_before_update_product_field, que recibe cada valor nuevo antes de escribirlo. La clave del título es post_title; los fragmentos antiguos que comprueban title nunca coinciden. Este ejemplo colapsa los espacios repetidos en cada título que guarda BEAR:
/*
* 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 );
Sustituye la línea dentro de la condición por $value = mb_strtolower( $value ); para forzar títulos en minúsculas, o por tu propia regla. Hay más filtros de este tipo en más ajustes (implícitos).
Quitar el SKU de los títulos o añadirles datos del producto
Las variables también se rellenan dentro del texto de búsqueda de un reemplazo, por separado para cada producto. Para quitar de su título el SKU propio de cada producto, usa el comportamiento reemplazar, pon {SKU} en el primer campo y deja reemplazar por texto vacío. La pestaña Filtros no puede hacer la misma comparación: un valor de filtro se toma literalmente, así que un filtro de título con una variable dentro no encuentra nada.
Ten cuidado con los separadores. Si el SKU está en el título como Hoodie - HD-102, la búsqueda - {SKU} lo quita limpiamente, pero en un producto sin SKU esa misma búsqueda se convierte solo en - y quita de ese título todos los guiones con espacios. Antes de una ejecución así, añade a tu filtro el filtro de SKU con el comportamiento Vacío (Empty): si no encuentra nada, todos los productos tienen SKU y el separador es seguro; si no, busca solo {SKU}.
Los mismos marcadores añaden datos a los títulos. Con el comportamiento añadir al final y el texto - {attribute:pa_brand}, cada título recibe el atributo de marca del producto; {SKU}, {product_cat} (los nombres de las categorías), {tags} y {meta:your_meta_key} funcionan igual. Un producto sin valor recibe un marcador vacío, así que filtra antes esos productos o el separador se quedará solo al final de sus títulos. Pon como máximo un marcador {meta:...} o {attribute:...} en una operación y no lo combines con {tags} ni {product_cat}: con dos de ellos en el mismo texto el marcador se lee mal y se elimina. Haz una segunda operación para el segundo valor.
Slugs de productos renombrados y copiados
Cambiar un título no cambia el slug del producto, la última parte de su URL. Normalmente es lo que quieres, porque los enlaces antiguos siguen funcionando. Se convierte en un problema con las copias: un producto duplicado y luego renombrado sigue teniendo un slug creado a partir del título original, y cincuenta copias renombradas son cincuenta URL equivocadas.
- Regenerar a partir del título. Marca la fila slug del producto (product slug), deja su campo vacío y elige nuevo. En los productos publicados, WordPress crea un slug nuevo a partir del título actual y añade
-2,-3cuando un slug ya está ocupado. Los productos en borrador reciben su slug cuando se publican. - Escribirlo a partir de una variable. Pon
{TITLE}, o{TITLE}-{SKU}, en la fila del slug del producto con nuevo; WordPress convierte el texto en un slug válido. La FAQ copiar el título en el slug muestra lo mismo.
Cuando cambia el slug de un producto publicado, WordPress recuerda el anterior y redirige a los visitantes que llegan por la URL antigua. Aun así, conviene revisar unas cuantas URL de producto tras la ejecución. La fila del slug del producto no forma parte de la edición en masa en la versión gratuita; consulta qué puede editar la versión gratuita.
Títulos de variación
WooCommerce construye el título de una variación a partir del título del padre y de los valores de los atributos de la variación, así que las variaciones se renombran a través de su padre: cambia los títulos de los padres y las variaciones los siguen. Mientras el interruptor de variaciones del editor está activado, la fila del título está oculta en la pestaña Edición en masa; desactiva las variaciones para renombrar los padres. Por qué algunos títulos de variación muestran los atributos y otros no se explica en títulos de variación con atributos.
Comprobar el resultado y deshacer
- Ejecuta las operaciones nuevas primero con unos pocos productos marcados y después con todo el filtro.
- Busca espacios dobles, separadores que se hayan quedado solos y palabras que han coincidido dentro de palabras más largas.
- Si el resultado es incorrecto, revierte la operación en la pestaña Historial (History): conserva el título anterior de cada producto de la ejecución. La versión gratuita conserva solo las dos últimas operaciones, así que revierte antes de ejecutar más.
Si una operación con títulos no se comporta como se describe, pregunta en el foro de soporte de BEAR con un título de ejemplo antes y después y el texto exacto que has introducido.