• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

Dani Sánchez

  • ¿Eres agencia?
  • Quién soy
  • Servicios WordPress
    • Mantenimiento
    • Maquetación & Desarrollo
    • Soporte técnico
  • Portfolio
  • Blog
  • Presupuestos
Estás en: Inicio / Publicaciones / Modificar textos predefinidos de WordPress sin editar la traducción

Modificar textos predefinidos de WordPress sin editar la traducción

El 30 de agosto de 2018 por dani.sanchez

En muchos proyectos nos vemos con la necesidad de modificar algunos de los textos que vienen predefinidos en WordPress, bien porque nos los pida nuestro cliente, o bien porque queramos dirigirnos a nuestro público de alguna forma concreta, por ejemplo, los textos predefinidos en WordPress «tutean» al usuario, y es posible que nosotros queramos tener un tratamiento de «usted».

Por ejemplo, en el formulario de login de WordPress tenemos el texto predefinido «¿Olvidaste tu contraseña?»:

Si quisieramos cambiar este texto por «¿Olvidó su contraseña?», podríamos hacerlo con una sencilla función que aplicaríamos en el archivo functions.php de nuestro tema activo, o en nuestro propio plugin de funciones en caso de tenerlo creado.

La función en cuestión sería:

function sustitucion_textos_predefinidos($traduccion){
    $palabras = array(
        '¿Olvidaste tu contraseña?' => '¿Olvidó su contraseña?',
    );
    $traduccion = str_ireplace(array_keys($palabras), $palabras, $traduccion);
    return $traduccion;
}
add_filter('gettext', 'sustitucion_textos_predefinidos');
add_filter('ngettext', 'sustitucion_textos_predefinidos');

Simplemente tenemos que meter en el array $palabras, todas las cadenas de texto que queremos sustituir, donde primero insertamos la cadena tal cual viene en WordPress:

‘¿Olvidaste tu contraseña?’ y asignamos con «=>» la cadena de sustitución ‘¿Olvidó su contraseña?’.

También podemos cambiar cualquier elemento dentro del Panel de Control de WordPress, supongamos por ejemplo, que vamos a adaptar un WordPress para que lo gestione nuestro cliente y queremos cambiar varios elementos del menú, como por ejemplo, sustituir Medios por «Imágenes», o el botón de Añadir Objeto por «Añadir Imágenes»

Solo tenemos que añadir todas las líneas que deseemos cambiar:

function sustitucion_textos_predefinidos($traduccion){
    $palabras = array(
        '¿Olvidaste tu contraseña?' => '¿Olvidó su contraseña?',
        'Medios' => 'Imágenes',
        'Añadir Objeto' => 'Añadir Imágenes',
    );
    $traduccion = str_ireplace(array_keys($palabras), $palabras, $traduccion);
    return $traduccion;
}
add_filter('gettext', 'sustitucion_textos_predefinidos');
add_filter('ngettext', 'sustitucion_textos_predefinidos');

Como vemos en la función, todas las cadenas de texto que pasemos al array, pasarán por la función str_ireplace(), que localizará la cadena original y la reemplazará por la que le indicamos, sin tener que tocar archivos internos de WordPress ni modificar la traducción.

Espero que haya sido de utilidad el artículo y nos vemos en el siguiente post 🙂

Publicado en: Publicaciones, Tutoriales, WordPress Etiquetado como: desarrollo web, php, programación web, publicaciones, tutoriales, wordpress

¿Quiéres invitarme a un café?

Si te has fijado en este blog no hay ni rastro de publicidad, todo el contenido publicado lo hago de forma artruista al igual que yo recurro a otros sitios cuando necesito algo. Pero si te he servido de ayuda y quieres agradecérmelo, puedes hacer una pequeña donación (el importe que quieras):

Entradas similares

  • Cerrar modales de Elementor con JavaScript (jQuery)
  • Redirección 301 para cambios de dominio
  • Guía rápida de Flexbox
  • Filtro de WooCommerce para personalizar el mensaje de «Gracias por tu pedido»
  • Portátiles reacondicionados, ¿mejor que uno nuevo?

Interacciones con los lectores

Comentarios

  1. Damian dice

    2 de junio de 2020 a las 00:16

    Hola,
    Como se pueden modificar los nombres de aquellos botos que se encuentran por defecto en las paginas porque desde las opciones hay algunos botones que no aparecen como asi tambien algunos textos.

  2. Consultor SEO en Tijuana dice

    10 de noviembre de 2020 a las 13:02

    Me acabas de salvar de un problema que tenia!

    Muchas gracias por el artículo.

    • dani dice

      11 de noviembre de 2020 a las 09:47

      Gracias, muchos blogs me salvan a mí a diario, esta es mi pequeña contribución. Saludos.

  3. Infomercantil dice

    27 de noviembre de 2020 a las 20:23

    Grande!

  4. Ernesto dice

    1 de junio de 2021 a las 08:09

    Hola Dani,

    Gran aporte!!!

    Solo comentarte que te falta cerrar el paréntesis de «str_ireplace(» en la segunda función.

    • dani dice

      1 de junio de 2021 a las 08:13

      Hola, gracias por el aviso! Ya está corregido. Saludos.

  5. Alejandro dice

    9 de junio de 2021 a las 17:17

    ej: Detalles de Pedido #2323 este texto lo ingreso de esta forma pero no funciona: ‘Detalles de Pedido’ => ‘Detalles’,

    • dani dice

      10 de junio de 2021 a las 07:37

      Puede que en este caso, al contener el texto una variable (nº de pedido) no funcione con este método, y tengas que editarlo en los archivos de traducción de WooCommerce (los archivos po/mo). En este momento no tengo tutoriales de cómo editarlos, pero hay mucha información en la red.

  6. iñaki dice

    3 de septiembre de 2021 a las 15:20

    Muy buen tutorial.
    ¿Se podía cambiar el enlace de estos textos? que al pulsar ¿olvidó su contraseña? nos lleve a otra página definida por nosotros.

    Quiero que el texto sea «apuntarme» y dirija a la página de suscripción.

    Muchas gracias

    • dani dice

      3 de septiembre de 2021 a las 16:18

      Gracias por tu mensaje. No, la función solo afecta a la cadena de texto no a su enlace.

      Para cambiar el enlace del link échale un ojo a este filtro: https://developer.wordpress.org/reference/hooks/lostpassword_url/

      Saludos.

  7. Leo dice

    6 de abril de 2022 a las 15:29

    Excelente aporte, le dí uso al código pero hay una cadena que no cambia, cambia lo que contiene pero no la principal, me refiero a «Entradas», tendrás data sobre esto?.
    Mil gracias!

Barra lateral principal

Autor

Dani Sánchez

logo mastodon @danisanchez

Entradas recientes

  • Iniciar sesión en nuestros VPS mediante SSH Keys
  • Cerrar modales de Elementor con JavaScript (jQuery)
  • Redirección 301 para cambios de dominio
  • Guía rápida de Flexbox
  • Filtro de WooCommerce para personalizar el mensaje de «Gracias por tu pedido»

Comentarios recientes

  1. Brandon Portes en Taller de verano de WooCommerce #1
  2. Sebastian en Instalar WordPress + MySQL + phpMyAdmin desde Docker Compose
  3. Rigol en Instalar LAMP (Linux, Apache, MySQL y PHP) en Fedora
  4. dani.sanchez en Instalar WordPress + MySQL + phpMyAdmin desde Docker Compose
  5. rikylinux en Instalar WordPress + MySQL + phpMyAdmin desde Docker Compose

Categorías

  • Actualidad
  • Afiliación AliExpress
  • Agent Press Pro
  • Bettaso Web Restaurantes
  • Cursos
  • Destacado
  • Divi
  • Drupal
  • Elementor
  • Genesis
  • Iniciación a PHP
  • Joomla!
  • Linux
  • Publicaciones
  • Tutoriales
  • WooCommerce
  • WordPress
Medium banner says Support Inkscape
Banner pie de página

Maquetación web, landings, blogs y tiendas online
cuidando hasta el mínimo detalle

Si necesitas que desarrolle tu proyecto web ponte en contacto conmigo.

Contacto
  • Mastodon
  • YouTube
  • LinkedIn

Alojado con energía 100% verde

Dani Sánchez © 2025 · Política de privacidad · Política de cookies