WPML
Status
Resolvido
Relatado para
WPML Multilingual CMS 3.1.9.5
Resolvido em
3.1.9.7

Visão geral do problema

  1. Vá para o menu e crie um no idioma padrão.
  2. Tente criar o menu no idioma secundário.
  3. Após salvar, você receberá um erro 404.

Solução alternativa

Este problema foi resolvido no WPML 3.1.9.7


Você deve atualizar para a versão recente do WPML para corrigir o problema

Se você não quiser ou não puder atualizar o WPML, siga estas instruções:


  1. Baixe a versão atualizada do iclNavMenu.class.php

  2. Use-o como um substituto de sitepress-multilingual-cms/inc/wp-nav-menus/iclNavMenu.class.php:
    Muito provavelmente, isso significa que você deve usar seu cliente FTP e fazer o upload do arquivo em sitepress-multilingual-cms/inc/wp-nav-menus: se for solicitado que você substitua o arquivo existente, basta confirmar.

Em caso de problemas


Caso você encontre algum destes 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

  • Uma página branca/em branco

Siga estes passos:

  1. Vá para “WPML” -> “Suporte”

  2. Clique em “informações de depuração”: você verá uma caixa de texto cinza, com muitas informações (é um objeto json)

  3. Copie o conteúdo da caixa de texto em um arquivo de texto e nomeie esse arquivo como desejar: é melhor usar a extensão “json”, mas isso não é obrigatório

  4. Crie um novo usuário do WordPress com direitos de administrador para que eu possa depurar o problema

  5. Instale o plugin gratuito “Duplicator” (aqui).
    Você pode usar um plugin diferente, se preferir, mas as instruções a seguir são específicas para o Duplicator (embora possam ser facilmente ajustadas para outros plugins)

  6. Crie um novo pacote:

    1. Vá para “Duplicator” -> “Pacotes”

    2. Clique em “Create New”

    3. Prossiga com o assistente, deixando todas as configurações padrão (se desejar, você pode excluir alguns arquivos que acha que não são necessários, ou que deixariam o pacote muito grande, como os arquivos na pasta “uploads”)

    4. Assim que o snapshot estiver pronto, baixe os arquivos “installer” e “package”

  7. Crie uma pasta e inclua os arquivos dos passos 3 e 6.4 (ou seja, o arquivo de texto com as informações de depuração, o installer e o package).

  8. Compacte essa pasta e faça o upload no Google Drive, Dropbox ou um serviço semelhante (ou faça o upload da pasta inteira sem compactar, e compartilhe-a)

  9. Vá para o nosso fórum de suporte e crie um tíquete de suporte com o seguinte título “Workaround issues – Saving menus in non default language leads to 404 error”: nós pediremos que você compartilhe de forma privada os arquivos que você armazenou no passo 8.

Se você estiver usando uma versão muito antiga do WPML, esta solução alternativa pode não funcionar.
In these cases, you may get a white page, or this errors: PHP Fatal error:  Call to undefined function wpml_prepare_in()

Para corrigir este erro específico, siga estes passos:


  1. abra
    'wp-content/plugins/sitepress-multilingual-cms/inc/functions.php'
    e pesquise por
    wpml_prepare_in

  2. Se você não conseguir encontrá-lo, adicione isto no final do arquivo:
    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 os problemas conhecidos →