WOLF - WordPress Posts Bulk Editor and Manager Professional

Buscar y reemplazar en masa en entradas, títulos y campos SEO de WordPress

Una búsqueda y reemplazo en masa en entradas de WordPress suele empezar por un cambio pequeño que aparece en todas partes: la fecha del año pasado en doscientas reseñas, un producto con otro nombre en los títulos, una marca antigua en las meta descripciones de Yoast. En WOLF se hace en dos pasos. La pestaña Filtros (Filters) encuentra las entradas que contienen el texto, y el comportamiento reemplazar (replace) de la pestaña Edición masiva (Bulk Edit) cambia el texto en cada una de ellas. Los dos pasos comparan el texto de forma distinta, y conocer esa diferencia es lo que hace que el trabajo sea predecible.

Cómo funciona la búsqueda y el reemplazo en masa en WOLF

La búsqueda y el reemplazo son herramientas separadas con reglas separadas:

  • La búsqueda es un patrón de base de datos. Los filtros de texto de la pestaña Filtros (Filters) comparan tu texto con el título, el contenido o el extracto almacenados dentro de la consulta a la base de datos, donde algunos caracteres tienen un significado especial (consulta el Paso 1).
  • El reemplazo es una sustitución de texto simple. Para cada entrada de la operación, WOLF lee el valor almacenado, reemplaza todas las apariciones de tu texto, carácter por carácter, y guarda la entrada. No hay comodines ni patrones.

El aviso en la parte superior de la pestaña Edición masiva (Bulk Edit), La edición masiva se aplicará a: (Bulk editing will be applied to:), indica qué entradas toca la operación. Las entradas seleccionadas con las casillas del Editor de entradas tienen prioridad. Sin selección, se usan las entradas filtradas. Si no hay ninguna de las dos cosas, se usan todas las entradas del tipo de contenido actual.

Filtra siempre primero, aunque el reemplazo solo modifique las entradas que contienen el texto. Todas las entradas de la operación se guardan, incluidas aquellas en las que no se encontró nada. Cada una recibe una nueva Fecha de modificación (Date modified) y una entrada en el Historial. Una ejecución filtrada toca solo las entradas que realmente necesitan el cambio.

Paso 1: encuentra las entradas que contienen el texto

Abre la pestaña Filtros (Filters). Los campos de texto [post] title ..., [post] content ..., [post] excerpt ... y [post] slug ... tienen cada uno un menú desplegable de comportamiento a su lado:

ComportamientoEncuentra entradas donde el campo
LIKEcontiene el texto en cualquier posición
EXACTes exactamente el texto, nada más
NOTno contiene el texto
BEGIN / ENDempieza o termina con el texto
Emptyestá vacío

Escribe el texto, elige LIKE y haz clic en Filtrar (Filter). La búsqueda no distingue entre mayúsculas y minúsculas. Revisa algunas de las entradas encontradas antes de continuar.

Caracteres que conviene dejar fuera de la búsqueda

Técnicamente, LIKE, NOT, BEGIN y END son expresiones regulares de MySQL. Las letras, los dígitos, los espacios y los guiones coinciden consigo mismos. Estos caracteres no: . [ ] ( ) * + ? | $ \ { }. Un punto coincide con cualquier carácter, lo que solo amplía un poco el resultado. Los corchetes hacen más daño: en [sc name="product-code"][/sc] convierten el texto en «un carácter de esta lista», de modo que el filtro devuelve demasiadas entradas o ninguna. Busca en su lugar una parte distintiva que no tenga esos caracteres, por ejemplo product-code. Deja fuera también los apóstrofos y busca la parte de la frase anterior o posterior a ellos. Nada de esto se aplica al Paso 2: el reemplazo no es un patrón, así que los corchetes, los paréntesis y los puntos no dan problemas allí.

Varias palabras, AND y NOT

Un mismo campo puede contener varias condiciones. 2019^2020 encuentra las entradas que contienen cualquiera de los dos años. chainsaw^~2019 encuentra las entradas que contienen ambas palabras. chainsaw^!2024 encuentra las entradas con «chainsaw» pero sin «2024». Pon las partes con ! al final. La documentación de Filtros y la pregunta frecuente sobre buscar varios títulos a la vez incluyen más ejemplos.

Busca lo que está almacenado, no lo que se muestra

El filtro de contenido busca en el HTML que WordPress almacena. En el editor de bloques, eso es lo que ves en la vista Editor de código (Code editor), incluidos los comentarios de bloque. Un ampersand suele almacenarse como &amp;, y una frase con negrita en medio (buy <strong>now</strong>) no es el texto plano «buy now». Lo mismo ocurre con los shortcodes. Las celdas de título y de contenido del Editor de entradas muestran el texto almacenado con los shortcodes como texto sin procesar, porque WOLF muestra valores para editar y nunca los renderiza. Ese texto sin procesar es exactamente el que usan la búsqueda y el reemplazo.

Paso 2: reemplaza el texto en la pestaña Edición masiva

  1. Abre la pestaña Edición masiva (Bulk Edit) y lee el aviso de la parte superior. Debe decir las entradas filtradas (the filtered [post]) o el número de entradas seleccionadas.
  2. Marca la casilla del campo que quieres cambiar: título (title), contenido (content), extracto (excerpt) u otro campo de texto. Los campos de entrada correspondientes se activan.
  3. Establece su menú de comportamiento en reemplazar (replace). Aparece una segunda fila.
  4. En el primer campo, escribe el texto que quieres encontrar, exactamente como está almacenado.
  5. En la segunda fila, elige respetar mayúsculas (same case) o ignorar mayúsculas (ignore case) y escribe el texto nuevo en texto de reemplazo (replace to text). Déjalo vacío para eliminar el texto encontrado.
  6. Haz clic en Hacer edición masiva (Do Bulk Edit) y confirma el cuadro de diálogo que lista los campos que se van a editar.

Respetar mayúsculas (Same case) reemplaza solo las coincidencias exactas, así que «Chainsaw» no se toca cuando buscas «chainsaw». Ignorar mayúsculas (Ignore case) reemplaza ambas. Puedes cambiar varios campos en una misma ejecución: marca el contenido y el extracto, cada uno con su propio texto de búsqueda y de reemplazo.

Los menús desplegables variable insertan {TITLE}, {ID} y {MENU_ORDER} en la posición del cursor, y funcionan en ambos campos. WOLF los rellena para cada entrada. Por ejemplo, reemplazar «Read the full review» por «Read the full review of {TITLE}» nombra a cada entrada en su propio texto.

TareaCampoTexto a buscarTexto de reemplazo
Actualizar un año en artículoscontentto buy in 2024to buy in 2026
Cambiar el nombre de un producto en los títulostitleModel X200Model X300
Eliminar una línea de todos los extractosexcerptUpdated weekly.(vacío)

Haz que el texto a buscar sea lo más específico posible. «2024» por sí solo cambiaría también precios, números de modelo y enlaces que casualmente contengan esos dígitos. Como el reemplazo es literal, no puede manejar un valor que cambia de una entrada a otra, como un ID de imagen distinto dentro de cada shortcode. Cada cadena distinta necesita su propia ejecución.

Reemplazar texto en los títulos SEO y las meta descripciones de Yoast SEO

Los plugins de SEO guardan el título SEO y la descripción personalizados de cada entrada en los metadatos. Yoast SEO usa las claves _yoast_wpseo_title y _yoast_wpseo_metadesc. Para buscar y reemplazar en ellas, conviértelas primero en columnas de WOLF:

  1. En la pestaña Campos meta (Meta Fields), añade ambas claves con Añadir clave personalizada a mano (Add Custom key by hands). También puedes introducir el ID de una entrada que tenga un título SEO personalizado en Obtener claves meta de cualquier entrada por su ID (Get meta keys from any post by its ID) y conservar las claves que necesites. Dales títulos legibles como «Título SEO», establece el tipo en string y haz clic en Guardar campos meta (Save meta fields).
  2. En la pestaña Ajustes (Settings), activa las dos nuevas columnas y haz clic en Guardar todos los ajustes (Save all settings). Solo las columnas activas aparecen en las pestañas Filtros y Edición masiva.
  3. Filtra con el nuevo filtro de texto meta y ejecuta reemplazar (replace) sobre el campo meta en la pestaña Edición masiva (Bulk Edit), exactamente como arriba.

Los filtros de texto meta funcionan de forma distinta a los filtros de título y contenido: su LIKE es un simple «contiene», por lo que los corchetes y los puntos no dan problemas. Más información en filtrar entradas por campo personalizado.

Yoast guarda un valor solo cuando alguien escribió un título o una descripción personalizados para esa entrada. Todas las demás reciben los suyos de las plantillas de los ajustes de Yoast, que usan variables como %%title%% y %%sitename%%. En esas entradas no hay nada que encontrar en el campo meta, así que cambia la plantilla en Yoast. Otros plugins de SEO usan sus propias claves: encuéntralas con Obtener claves meta de cualquier entrada por su ID (Get meta keys from any post by its ID) en una entrada donde hayas definido un título SEO personalizado.

Ejemplo: quitar «(copy)» de los títulos de entradas duplicadas

El botón Duplicar (Duplicate) del Editor de entradas da a cada copia el título original seguido de « (copy)», traducido cuando tu administración funciona en otro idioma. No hay ningún ajuste para desactivar el sufijo, pero un solo reemplazo lo elimina de todas las copias:

  1. En la pestaña Filtros (Filters), filtra el título con LIKE y el texto copy. No escribas (copy), porque los paréntesis son caracteres de patrón. Para dejar fuera títulos más antiguos como «Copywriting basics», establece también Por autor (By author) en ti mismo y Fecha de publicación desde (Date Published from) en el día de la duplicación. Las copias pertenecen al usuario que las hizo y llevan la fecha de ese momento.
  2. En la pestaña Edición masiva (Bulk Edit), activa título (title), elige reemplazar (replace), escribe (copy) con el espacio inicial, elige respetar mayúsculas (same case) y deja texto de reemplazo (replace to text) vacío.
  3. Haz clic en Hacer edición masiva (Do Bulk Edit).

Las copias se crean como entradas publicadas. Si todavía no deben ser públicas, establece estado de la entrada (post status) en borrador en la misma ejecución de Edición masiva. Sus slugs se generaron a partir del título con el sufijo, por ejemplo summer-sale-copy, y cambiar el título no cambia el slug de una entrada publicada. Ejecuta un reemplazo sobre el campo slug, o regenera los slugs como se describe en copiar el título en el slug. WordPress mantiene los slugs únicos, así que una copia de summer-sale pasa a ser summer-sale-2.

Probar, comprobar y deshacer

  • Prueba primero con dos o tres entradas. Selecciónalas con las casillas, que tienen prioridad sobre el filtro, ejecuta el reemplazo y revisa esas entradas en el sitio. Luego borra la selección y ejecútalo sobre todo el conjunto filtrado.
  • Deshaz desde el Historial. Cada ejecución masiva queda registrada en la pestaña Historial (History) y puede revertirse completa o entrada por entrada. El Historial cubre las ediciones, no las eliminaciones.
  • Vacía las cachés de página tras la ejecución si el sitio sigue mostrando el texto antiguo.
  • El filtro encontró las entradas pero no cambió nada: compara carácter por carácter tu texto a buscar con la celda del Editor de entradas. La diferencia habitual es un espacio, una entidad HTML, un salto de línea o una mayúscula con respetar mayúsculas (same case) seleccionado.
  • El filtro encuentra casi todo: el texto de búsqueda contiene un carácter de patrón como [ o (. Busca una parte más corta y sin esos caracteres.

La documentación de la pestaña Edición masiva describe los demás comportamientos de texto (añadir (append), anteponer (prepend), nuevo (new)). Si un reemplazo sigue sin hacer lo que esperas, publica el campo, el texto a buscar y una entrada de ejemplo en el foro de soporte de WOLF.