WordPress Hosting

codigo php

Acelera la carga de WordPress si no necesitas traducciones

¿Sabías que desde la versión 6.3 WordPress utiliza una parte de la memoria disponible para la carga de idiomas aunque no los utilices?

Pues sí, resulta que da igual si no piensas añadir idiomas a tu instalación de WordPress, si se va a quedar siempre en inglés de Estados Unidos (en_US por defecto), por defecto siempre se reservan como poco 200 Kb de memoria para cada solicitud realizada, por si hubiese que cargar algún idioma.

Es un gancho que existe en el archivo /wp-includes/l10n.php que, por otra parte, si usas algún idioma diferente del por defecto, mejora la carga de idiomas.

El código para anular esta instrucción, y acelerar la carga de todos los procesos de WordPress, es el siguiente:

/* Acelerar WP si solo es necesario el ingles */
add_filter('pre_load_textdomain', '__return_false', -42);

Al ser importante que se anule cuanto antes la carga de idiomas el lugar ideal en el que añadir el código sería como plugin imprescindible, que puedes crear por tu cuenta para tus personalizaciones, así te aseguras que se carga antes de los plugins.

Lo importante es que funciona, e incluso teniendo configurado tu sitio para cargar otro idioma, que una vez aplicado el código no se cargará ningún idioma aunque esté instalado y configurado, sino que solo se usará el idioma por defecto de WordPress (en_US).

wordpress sin cargar textdomain

Y es debido a que con esa simple línea de código impides que WordPress cargue cualquier idioma desde la instrucción de pre_load_textdomain, así que es un código que deberías añadir en cualquier instalación de WordPress que no requiera añadir idiomas.

Es más, yo creo que debería ser el comportamiento por defecto de WordPress mientras que el administrador no decidiese añadir algún idioma adicional, pero eso quedará para otra ocasión.

Resume el artículo con tu IA favorita o compártelo en redes

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en las estrellas para valorarlo!

Promedio de puntuación 4.6 / 5. Total de votos: 11

¡Todavía no hay votos! Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!



Sobre el autor

11 comentarios en “Acelera la carga de WordPress si no necesitas traducciones”

      1. Francisco Vivo

        Lo he probado y cambia todo mi sitio a inglés aunque tenga definido el idioma del sitio en español. Creía que respetaba el idioma instalado

          1. Francisco Vivo

            Bueno, pues me quedo a la espera de la segunda parte, que sería la interesante a conocer: «Es más, yo creo que debería ser el comportamiento por defecto de WordPress mientras que el administrador no decidiese añadir algún idioma adicional, pero eso quedará para otra ocasión.»

  1. Genial como siempre conocer estos detalles, Fernando. Sin embargo, en este sentido yo creo (mi humilde opinión) que precisamente lo que WordPress sigue necesitando, tras tantos y tantos años, es la capacidad que han tenido otros CMS muy conocidos para ser multilenguaje desde sus cimientos, de forma total. Esto incluso es uno de los principales motivos para que, algunos del sector que conozco, sigan utilizando esos otros CMS en ciertos proyectos en lugar de WordPress.

    1. Francisco Vivo

      Prueba este:

      /* Forzar idioma español globalmente */
      add_filter(‘load_textdomain_mofile’, function ($mofile, $domain) {
      // Si el archivo de idioma no es español, redirige al español
      $es_mofile = WP_LANG_DIR . «/$domain/es_ES.mo»;

      // Comprueba si el archivo español existe
      if (file_exists($es_mofile)) {
      return $es_mofile;
      }
      // Si no existe el archivo español, devuelve el archivo original
      return $mofile;
      }, 10, 2);

      1. Funcionar funciona perfecto, eso sí, no optimiza la carga porque se carga el textdomain, sirve para lo que es: forzar el español como idioma del sitio 😉

        Gracias por compartirlo 🙂

        1. Francisco V.

          Pues habrá que depurar un poco:

          // Fuerza el idioma del sitio a español
          add_filter(‘locale’, function ($locale) {
          return ‘es_ES’; // Define español como único idioma
          }, 10, 1);

          // Bloquea la carga de archivos de traducción que no sean en español
          add_filter(‘load_textdomain_mofile’, function ($mofile, $domain) {
          // Verifica si el archivo es para español
          if (strpos($mofile, ‘es_ES’) === false) {
          return false; // Bloquea la carga de otros idiomas
          }
          return $mofile; // Permite español
          }, 10, 2);

          // Asegura que WooCommerce use español si está activo
          add_action(‘init’, function () {
          if (class_exists(‘WooCommerce’)) {
          unload_textdomain(‘woocommerce’);
          load_textdomain(‘woocommerce’, WP_LANG_DIR . ‘/plugins/woocommerce/es_ES.mo’);
          }
          }, 20);

          Aquí, el textdomain específico (por ejemplo, woocommerce) sigue cargándose, pero se asegura de que solo cargue el archivo de traducción para español (es_ES.mo). Esto significa que, aunque el textdomain en sí esté activo, el archivo de idioma cargado será únicamente el necesario para el español.

Los comentarios están cerrados.

Scroll al inicio