wordpress-5-5

Como corrigir conflito de WordPress 5.5 jQuery

Atualizar para a versão mais recente e melhor do WordPress é essencial para proteger seu site contra hackers . No entanto, algumas atualizações podem causar problemas com plug-ins e temas de terceiros – o que é exatamente o caso da atualização recente do WordPress 5.5.

Um conflito de jQuery no WordPress 5.5 tem o potencial de quebrar cerca de 2.400 plug-ins do WordPress e cerca de 250 temas . Felizmente, você não precisa escolher entre segurança e continuar a usar seus temas e plug-ins favoritos.

Se você está tendo problemas após atualizar para o WordPress 5.5, mostraremos como testar se jQuery é o culpado. Em seguida, compartilharemos quatro maneiras de resolver esse problema no WordPress. Temos muito o que abordar, então vamos começar!

Por que o WordPress 5.5 está quebrando alguns temas e plug-ins

Antes do lançamento 5.5, o WordPress estava incluído na versão 1.12.4 da biblioteca jQuery JavaScript . Esta versão foi lançada em 2016 – apenas para colocar as coisas em perspectiva, esta versão do jQuery era compatível com o Internet Explorer 6, 7 e 8.

Como tal, a equipe do WordPress iniciou recentemente o processo de atualização da versão do jQuery que vem junto com o WordPress. Quando você atualiza para o WordPress 5.5, a ferramenta jQuery Migrate não é mais habilitada por padrão.

Infelizmente, essa transição não foi direta, pois alguns temas e plug-ins do WordPress ainda dependem de scripts jQuery mais antigos. Para temas e plug-ins que executam código mais antigo, essa alteração pode causar comportamentos inesperados. A comunidade WordPress até relatou problemas com plug-ins populares, como o Editor Clássico .

Mesmo que um tema seja compatível com o WordPress 5.5, há uma chance de que ele ainda encontre problemas se possuir um plugin que executa código desatualizado. Por exemplo, muitos temas premium são empacotados com plug-ins de construtor de página. Mesmo que o tema em si não exige jQuery Migrate, os usuários podem ainda encontrar problemas se o construtor de página empacotado faz exigem esse recurso.

Estima-se que cerca de 250 temas são diretamente afetados por esta atualização do jQuery Migrate. No entanto, plug-ins agrupados podem estar causando problemas com muito mais temas do WordPress.

Por que o WordPress resolveu o problema do jQuery agora

jQuery tem sido um assunto polêmico na comunidade WordPress. A decisão de desativar o jQuery Migrate é o culminar de um tíquete que o committer principal do WordPress Aaron Jorbin criou há quatro anos. Neste bilhete, ele propôs a migração WordPress para o ramo jQuery 3.x .

Esse problema de migração do jQuery forçou colaboradores, desenvolvedores e usuários do WordPress a equilibrar a segurança e a compatibilidade com versões anteriores. Atualizar para a versão mais recente do jQuery ajudaria a fechar brechas de segurança e proteger sites WordPress contra hackers . No entanto, muitos temas e plug-ins dependem de versões mais antigas do jQuery.

jQuery também está incluído no front-end de muitos sites, especialmente sites que oferecem suporte a versões mais antigas do Internet Explorer. Para manter a compatibilidade retroativa com esses navegadores mais antigos, o WordPress não poderia simplesmente mudar para a versão mais recente do jQuery durante a noite.

Um patch contendo uma versão mais recente do jQuery e do jQuery Migrate foi criado em 2018. No entanto, essa atualização potencial causou problemas com o núcleo do WordPress, particularmente os menus do Customizer . Também houve algum debate sobre se o WordPress deveria mudar para o Vanilla JS para o núcleo do WordPress e dar aos desenvolvedores a opção de carregar o jQuery 3.0 se necessário.

Eventualmente, foi decidido remover o jQuery Migrate 1.x no WordPress 5.5. Isso daria aos desenvolvedores de plugins e temas e proprietários de sites algum tempo para se prepararem para a eventual migração. No entanto, era geralmente aceito que alguns problemas eram inevitáveis.

“Não importa como abordemos isso, isso causará ondulações”, escreveu o principal contribuidor do WordPress, Marius. “O jQuery está no núcleo há tanto tempo que é realmente uma questão de arrancar o curativo, como dizem, ou nunca atualizar e se comprometer com isso.”

Depois de quatro anos de debate, os colaboradores do WordPress decidiram que o curso de ação menos perturbador seria uma abordagem em três etapas. Essa abordagem começou removendo o jQuery Migrate 1.x no WordPress 5.5.

Como o WordPress respondeu ao problema

Antes do lançamento 5.5, a equipe do WordPress discutiu a identificação de todos os plug-ins e temas que seriam adversamente afetados pela migração do jQuery. Eles poderiam então contatar esses desenvolvedores diretamente e avisá-los sobre as mudanças futuras. No entanto, o contribuidor principal Gal Baras apontou que nem todos os desenvolvedores de plugins e temas do WordPress hospedam seus projetos no repositório oficial do WordPress.

“Apesar da grande variedade de plug-ins e temas no repositório, vamos ter em mente aqueles disponíveis em outras fontes, cujos autores não podem ser contatados por e-mail como os autores do wp.org. Especificamente para temas, eu diria que essa é a maioria dos sites por aí ”, disse Gal.

A decisão de remover o jQuery Migrate 1.x foi anunciada em junho no Make WordPress Core . Em um esforço para preparar a comunidade, a equipe do WordPress também compartilhou links para alguns recursos úteis. Esses recursos incluem um Guia de atualização do jQuery Core 3.0 e um Guia de atualização do 3.5 .

Desde o lançamento, os principais colaboradores do WordPress têm se envolvido ativamente com a comunidade. Isso incluiu solicitar feedback sobre sua abordagem para atualizar o jQuery. Eles também discutiram abertamente se a equipe deve progredir com a migração do jQuery conforme planejado ou ir mais devagar. No momento da redação, o consenso era que uma decisão deveria ser tomada mais adiante.

O WordPress também lançou o 5.5.1 , que abordou alguns dos problemas de jQuery que a comunidade estava enfrentando. Em particular, o WordPress 5.5.1 introduziu uma correção para variáveis ​​que não estavam sendo localizadas .

Erro de execução de JavaScript do WordPress 5.5

Além do conflito do jQuery, no WordPress 5.5 alguns objetos JavaScript foram removidos sem se tornarem obsoletos. No WordPress 5.5, a referência a qualquer um dos objetos a seguir interromperá a execução do JavaScript:

  • adminCommentsL10n
    attachMediaBoxL10n
    authcheckL10n
    commentL10n
    commonL10n
    inlineEditL10n
    navMenuL10n
    postL10n
    plugininstallL10n
    privacyToolsL10n
    setPostThumbnailL10n
    tagsl10n
    tagsSuggestL10n
    userProfileL10n
    wp.themePluginEditor.l10n
    wp.updates.l10n
    wpColorPickerL10n
    wpPointerL10n
    wpWidgets.l10n

O fundador da Yoast, Joost de Valk, e o diretor de tecnologia (CTO) da Yoast, Omar Reiss, criaram uma planilha do Google detalhando o impacto que esses objetos terão nos vários temas e plug-ins. No entanto, o WordPress 5.5.1 adicionou um ‘preenchimento’ para os globais afetados que evitou mais erros de JavaScript. Se o seu site depende de um tema ou plugin afetado, você deve atualizar para 5.5.1 o mais rápido possível.

Ao redeclarar esses globais em 5.5.1, o WordPress deu aos desenvolvedores de tema e plug-in mais tempo para atualizar seu software. No entanto, o WordPress atualmente planeja remover esse código substituto no WordPress 5.7, então é apenas uma correção temporária.

Como diagnosticar erros de JavaScript

Se você está encontrando um comportamento estranho após atualizar para o WordPress 5.5, pode verificar se o problema está relacionado a um conflito de jQuery, usando um kit de ferramentas como o Chrome DevTools . Embora nosso exemplo abaixo use o Google Chrome, a mesma funcionalidade é encontrada em todos os principais navegadores.

Você pode acessar o Console clicando no ícone do menu de três pontos no canto superior direito do Chrome. Em seguida, selecione Mais ferramentas> Ferramentas do desenvolvedor .

Se o console não abrir automaticamente, você deve selecionar a guia Console . Como alternativa, você pode ir direto para o painel do Console, usando o atalho de teclado Command + Option + J no macOS e Control + Shift + J no Windows e Linux.

Se o console não exibir um erro, tente recarregar a página – alguns erros são gerados apenas quando a página é carregada.

Se o console exibir um erro, você pode ver mais informações selecionando o link que acompanha o erro. O console deve exibir o tipo de erro, a localização do erro e o número da linha.

Se você encontrar uma mensagem Uncaught ReferenceError , selecione-a – isso deve abrir uma nova tela contendo uma mensagem de erro. Para saber mais sobre esse erro, clique no ícone de X vermelho que o acompanha .

Ao revisar cuidadosamente todas as informações, você poderá diagnosticar o que está causando o erro. Se não tiver certeza sobre um erro específico, você pode tentar inserir o texto do erro em um mecanismo de pesquisa. Como alternativa, você pode postar a mensagem de erro completa em um site de perguntas e respostas com foco em tecnologia, como Stack Overflow .

Como mencionamos, você também pode verificar se há erros usando o Console da Web do Firefox  ou o Microsoft Edge DevTools . No entanto, se estiver usando o Safari, você precisará habilitar as Ferramentas do Desenvolvedor antes de solucionar os problemas de instalação do WordPress.

Na barra de ferramentas do Safari, selecione Safari> Preferências> Avançado e selecione Mostrar menu de desenvolvimento na barra de menus. Agora você pode abrir a página em que está encontrando o problema e selecionar Desenvolver> Mostrar console de erro na barra de ferramentas do Safari.

4 maneiras de resolver um conflito de jQuery

Se você verificou que um conflito de jQuery está causando problemas com o seu site, existem etapas que você pode seguir para resolver esses problemas. Vamos examiná-los agora.

1. Atualize todos os seus temas e plug-ins

Desde o lançamento do WordPress 5.5, os desenvolvedores de temas e plugins têm trabalhado arduamente para atualizar seus softwares. Se você estiver executando um tema ou plugin desatualizado, pode estar encontrando um problema que já foi corrigido.

Para verificar se há atualizações disponíveis, faça login no painel do WordPress e selecione Atualizações . A partir daqui, você pode (é claro) atualizar todos os seus temas e plug-ins.

Se você instalou uma ou mais atualizações, verifique se isso resolveu o seu problema. Nosso conselho é tentar replicar o problema original ou, se você souber como procurá-lo, solucione o problema de seu site usando um kit de ferramentas como o Chrome DevTools.

2. Entre em contato com o desenvolvedor

Se você instalou a atualização mais recente e ainda está encontrando problemas, entrar em contato com o desenvolvedor do tema ou do plugin é uma boa ideia. É possível que o desenvolvedor não saiba do conflito do jQuery ou esteja planejando lançar uma atualização.

Se você baixou o tema ou plug-in do diretório oficial de plug-ins do WordPress, verifique a lista do plug-in. Essas listas geralmente incluem informações sobre sites, fóruns ou perfis de mídia social onde você pode entrar em contato com a equipe por trás do plugin ou tema em questão. Às vezes, essas listagens podem até conter os detalhes de contato direto do desenvolvedor.

Como alternativa, alguns desenvolvedores optam por incluir suas informações de contato no nível do código. Se você baixou o tema ou plugin para o seu computador, tente descompactar a pasta e procurar um arquivo que contenha os detalhes do desenvolvedor. O arquivo README geralmente é um bom lugar para começar. Esses arquivos geralmente contêm os nomes dos principais contribuidores ou o processo de contato com o suporte.

Ao entrar em contato com o desenvolvedor sobre os problemas que você está enfrentando, inclua o máximo de informações possível. Se você explorou o erro usando um kit de ferramentas como o Chrome DevTools, é uma boa idéia compartilhar esses dados com o plugin ou desenvolvedor do tema.

3. Verifique se o plugin ou tema não é mais mantido

Muitos plug-ins e temas são projetos apaixonados, em vez de empreendimentos comerciais. Quando um projeto é liderado por uma equipe muito pequena ou um único desenvolvedor, sempre há uma chance de que o projeto perca o ímpeto e pare de ser mantido, ou até mesmo abandonado.

O diretório oficial de plug-ins do WordPress exibe a data em que cada tema e plug-in foram atualizados pela última vez. Diferentes tipos de software requerem atualizações mais frequentes do que outros. No entanto, se um plugin ou tema não for atualizado dentro de seis meses, você deve abordar com cuidado.

Se um plugin ou tema tiver presença em um site ou mídia social, você também pode verificar se há atividades recentes. Tweets recentes ou um blog atualizado regularmente sugere que o tema ou plugin ainda está em desenvolvimento ativo.

Se você suspeitar que o tema ou plugin foi abandonado ou não é mais mantido, a solução é encontrar um que esteja sendo desenvolvido ativamente. Quase todas as vulnerabilidades do WordPress estão relacionadas a plug-ins , por isso é sempre uma boa ideia substituir temas e plug-ins não mantidos , independentemente dos conflitos do jQuery.

4. Use o plugin jQuery Migrate

Se você estiver enfrentando conflitos de jQuery relacionados à atualização 5.5, o WordPress tem sua própria solução temporária – o plugin Enable jQuery Migrate Helper . Se você precisar continuar usando um plugin ou tema que está causando conflitos no jQuery, este plugin fornece uma correção compatível com versões anteriores.

Essencialmente, ele reativa o script de migração para o seu site e dá ao desenvolvedor do tema ou do plugin algum tempo extra para atualizar o software.

Enquanto, o plugin auxiliar Enable jQuery é projetado para rodar em produção – isto é, em um site ativo – ele não corrige o que está quebrado pela atualização do WordPress 5.5. Como tal, você deve tratar este plugin como uma correção temporária, ao invés de uma solução permanente.

Preparando-se para WordPress 5.6 e além

Desativar o jQuery Migrate é a primeira etapa nos planos de três etapas do WordPress para jQuery. De acordo com Andrew Ozz, um dos desenvolvedores líderes, o WordPress planeja “provisoriamente” atualizar para a versão mais recente do jQuery e jQuery User Interface (UI) 1.12.1 no WordPress 5.6 . A versão mais recente do jQuery Migrate também será adicionada como parte do lançamento do WordPress 5.6.

O objetivo final é remover totalmente a dependência do jQuery Migrate. Portanto, no WordPress 5.7, a equipe planeja remover o jQuery Migrate, embora atualmente não esteja agendado para lançamento até 2021.

A longo prazo, Andrew Ozz sugeriu que o WordPress pretende mover a seção de administração para o JavaScript vanilla. “Há muito código para migrar, então vai demorar um pouco”, disse ele. Ele também confirmou que as bibliotecas e plug-ins jQuery permanecerão disponíveis para enfileirar por meio do Script Loader, a fim de manter a compatibilidade com versões anteriores.

Como preparar seu site WordPress para o futuro

Para evitar problemas no futuro, você deve começar a preparar seu site para WordPress 5.6 e 5.7 agora. Você pode testar como seu site funciona em vários ambientes jQuery, usando o plug-in Test jQuery Updates.

No WordPress 5.6, o plano atual é atualizar para a versão mais recente do jQuery e jQuery UI, mas deixar o plugin jQuery Migrate habilitado. Para testar esta configuração, navegue até Plugins> Testar atualizações do jQuery .

Agora você pode alterar a versão do jQuery para 3.5.1 e alterar a UI do jQuery para 1.12.1 . Você também deve garantir que o jQuery Migrate esteja definido como Enabled .

Agora, coloque seu site à prova. Se você encontrar qualquer comportamento inesperado, pode solucionar esses problemas usando um kit de ferramentas como o Chrome DevTools.

Para o lançamento do WordPress 5.7, a equipe planeja remover o jQuery Migrate. Para testar seu site neste ambiente, você deve definir jQuery Migrate como Disabled . Você também deseja definir a versão do jQuery e a interface do usuário do jQuery para a versão mais recente disponível.

Agora você pode testar seu site para quaisquer problemas ou erros. Se você experimentar o plugin Test jQuery Updates, lembre-se de restaurar as configurações padrão do plugin depois de terminar o teste. Como alternativa, você pode desativar ou excluir este plug-in se não for mais necessário.

Conclusão do conflito do WordPress jQuery

conflito do WordPress jQuery pode causar problemas com milhares de temas e plug-ins de terceiros. Se você estiver tendo problemas após atualizar para 5.5, existem etapas que você pode seguir para resolvê-los:

  1. Verifique se você tem a versão mais recente de todos os temas e plug-ins.
  2. Contate o desenvolvedor sobre quaisquer conflitos de jQuery que você encontrar.
  3. Considere se o tema ou plugin foi abandonado.
  4. Reative o script de migração, usando Enable jQuery Migrate Helper .

Se você estiver preocupado com as atualizações do WordPress ou tiver conflitos com seus plug-ins e temas, seu provedor de hospedagem na web pode oferecer suporte. Na A2 Hosting, todos os nossos planos oferecem suporte 24 horas nos sete dias da semana como padrão . Você pode acessar o suporte via chat ao vivo, e-mail ou telefone, e todas as solicitações de suporte são tratadas por nossa equipe selecionada de especialistas em WordPress.