WPML
Estado
Resuelto
Notificado para
WPML Multilingual CMS 3.1.9.5
Resuelto en
3.1.9.7

Resumen del problema

  1. Vaya al menú y cree uno en el idioma predeterminado.
  2. Intente crear el menú en el idioma secundario.
  3. Después de guardar, obtendrá un error 404.

Solución alternativa

Este problema se ha resuelto en WPML 3.1.9.7


Debe actualizar a la versión reciente de WPML para solucionar el problema

Si no desea o no puede actualizar WPML, siga estas instrucciones:


  1. Descargue la versión actualizada de iclNavMenu.class.php

  2. Úselo como reemplazo de sitepress-multilingual-cms/inc/wp-nav-menus/iclNavMenu.class.php:
    Lo más probable es que deba usar su cliente FTP y subir el archivo en sitepress-multilingual-cms/inc/wp-nav-menus: si se le pide que sobrescriba el archivo existente, hágalo.

En caso de problemas


En caso de que experimente alguno de estos problemas:

  • Fatal error: Call to undefined method SitePress::get_setting() in /wp-content/plugins/sitepress-multilingual-cms/inc/wp-nav-menus/iclNavMenu.class.php on line 121

  • PHP Fatal error: Call to undefined function wpml_prepare_in() in /wp-content/plugins/sitepress-multilingual-cms/inc/wp-nav-menus/iclNavMenu.class.php on line 548

  • Una página blanca o en blanco

Siga estos pasos:

  1. Vaya a «WPML» -> «Soporte»

  2. Haga clic en «información de depuración»: verá un cuadro de texto gris con mucha información (es un objeto json)

  3. Copie el contenido del cuadro de texto en un archivo de texto y asígnele el nombre que desee: es mejor si usa la extensión «json», pero no es obligatorio

  4. Cree un nuevo usuario de WordPress con derechos de administrador para poder depurar el problema

  5. Instale el plugin gratuito «Duplicator» (aquí).
    Puede usar un plugin diferente si lo desea, pero las siguientes instrucciones son específicas para Duplicator (aunque se pueden ajustar fácilmente para otros plugins)

  6. Cree un nuevo paquete:

    1. Vaya a «Duplicator» -> «Paquetes»

    2. Haga clic en «Crear nuevo»

    3. Continúe con el asistente, dejando toda la configuración predeterminada (si lo desea, puede excluir algunos archivos que considere innecesarios o que harían que el paquete sea demasiado grande, como los archivos en la carpeta «uploads»)

    4. Una vez que la instantánea esté lista, descargue los archivos «installer» y «package»

  7. Cree una carpeta e incluya los archivos del paso 3 y 6.4 (es decir, el archivo de texto con la información de depuración, el instalador y el paquete).

  8. Comprima esa carpeta en un archivo zip y súbala a Google Drive, Dropbox o un servicio similar (o suba la carpeta completa sin comprimir y compártala)

  9. Vaya a nuestro foro de soporte y cree un ticket de soporte con el siguiente título «Problemas con la solución alternativa: guardar menús en un idioma no predeterminado provoca el error 404»: le pediremos que comparta en privado los archivos que guardó en el paso 8.

Si está utilizando una versión demasiado antigua de WPML, es posible que esta solución alternativa no funcione.
In these cases, you may get a white page, or this errors: PHP Fatal error:  Call to undefined function wpml_prepare_in()

Para solucionar este error específico, siga estos pasos:


  1. abra
    'wp-content/plugins/sitepress-multilingual-cms/inc/functions.php'
    y busque
    wpml_prepare_in

  2. Si no puede encontrarlo, añada esto al final del archivo:
    function wpml_prepare_in( $items, $format = '%s' ) {
     global $wpdb;
    
     $items    = (array) $items;
     $how_many = count( $items );
     if ( $how_many > 0 ) {
      $placeholders    = array_fill( 0, $how_many, $format );
      $prepared_format = implode( ",", $placeholders );
      $prepared_in     = $wpdb->prepare( $prepared_format, $items );
     } else {
      $prepared_in = "";
     }
    
     return $prepared_in;
    }

Todos los problemas conocidos →