Qual é a importância de escrever um plugin compatível com o WP 3.x hoje em dia?

8

Atualmente, estou escrevendo um plug-in simples com postagens personalizadas e algumas funções, usando pós-metadados e adicionando algumas variáveis à tabela "options" no banco de dados. Durante a minha pesquisa, vi algumas referências no WP Codex sobre como tornar o plugin compatível com versões anteriores ao WP 3.xe estava apenas imaginando como é importante incorporar essa compatibilidade.

Por exemplo, a versão mais antiga do WP que eu já vi instalada (por um cliente) era 3.2, ou algum lugar por lá. Não consigo imaginar muitas pessoas tendo algo mais antigo que 3.x mas posso estar errado. Eu sei, em teoria, que você deve sempre tentar torná-lo perfeitamente compatível, mas, de forma realista, alguém sabe o quanto é importante incluir essa capacidade?

Obrigado

    
por Mike Stumpf 14.08.2013 / 17:15

5 respostas

10

Sempre escreva plugins para a versão atual e mantenha as compilações noturnas das próximas versões em mente. Qualquer outra coisa não importa.

Editar Como @toscho apontou em um comentário:

Pode haver alguma explicação necessária para explicar por que é dessa forma.

  1. Porque eu digo isso.
  2. Os plug-ins só precisam estar em conformidade com o núcleo porque, se todos jogarem com as regras, nada falhará. Se um plugin não joga com as regras, então ele tem um bug . E esse bug precisa ser consertado e não qualquer outra coisa e não outro plugin ou tema.
  3. Os usuários que não atualizam o WordPress são o resultado de plugins com bugs que são usados e não podem ser abandonados em sistemas sem muito trabalho. Como está escrito em (2), são bugs que você não precisa se importar. Os bugs precisam ser consertados, não o seu plugin considerando um código de terceiros.
  4. O Código Legado não precisa de suporte. Precisa de substituição. Não é problema seu.
  5. As coisas mudam em grande escala nas principais versões do X.X. Quando você tenta oferecer suporte a versões anteriores, muitas vezes você precisa de diferentes soluções alternativas e muita verificação de versão. Isso é (a) um pesadelo de manutenção (b) aumenta a base de código (c) torna testes de unidade impossíveis, já que eles precisam rodar na versão one - não menos, não mais e finalmente (d) diminuir espaço em disco e desempenho do servidor (na maioria dos casos).
  6. O WordPress já tem uma base de código muito antiga que não apresenta melhorias em muitas arestas e cantos. Resumindo: o WordPress é antigo, usa uma versão do PHP não mais suportada como mínimo e, portanto, você já está suportando versões anteriores em níveis muito mais baixos do que na API pública do seu aplicativo.

Agora, pergunte-se:

  

Quando você já está dando suporte a uma versão do PHP não mais suportada, por que você deseja dar suporte a um aplicativo que nem sequer é suportado por seus criadores?

    
por kaiser 14.08.2013 / 17:34
5

Lembre-se que o lançamento do WordPress 3.0 requer PHP5. Na época, muitas empresas de hospedagem ainda não estavam executando o PHP5 em seus servidores. Então, houve um período em que alguns sites do WordPress NÃO PODEM atualizar para o WordPress 3.0 porque suas empresas de hospedagem não mantinham seus servidores atualizados.

Muitos anos já passaram (3+) desde o lançamento do WordPress 3.0, sendo assim compatível com o WordPress < 3.x não é muito comum plugins.

    
por Rachel Baker 14.08.2013 / 18:47
5

A maioria das instalações do WordPress estão desatualizadas . Atualmente, apenas 5,2% de todas as instalações estão sendo executadas na última versão 3.6. 27,3% ainda estão na versão 3.0.

Você pode achar que precisa dar suporte a essas versões antigas com código compatível. Mas pense nas implicações:

  • Você precisa testar todas as versões oficialmente compatíveis.
  • Você precisa lidar com APIs incompatíveis, como o carregador de mídia, que mudaram drasticamente em 3,5.
  • Você faz com que seus usuários pensem que não há problema em não atualizar o WordPress, porque ainda funciona.
  • Você precisa de mais código, mais testes e mais tempo de suporte para fazer as mesmas coisas.

E os usuários provavelmente não instalarão o seu plugin, porque eles já sabem que novos plug-ins quebram o site. Em termos de alcance de mercado, você pode ganhar um pouco com o código compatível com versões anteriores. Em termos de eficiência, você perde.

    
por fuxia 14.08.2013 / 20:47
4

Minha regra prática para plugins que escrevo é o suporte para a versão atual menos 1, então todos os plugins que eu escreveria seriam compatíveis com 3.6.xe 3.5.x. Embora um plug-in específico possa funcionar em versões anteriores, não garanto nem ofereço suporte se você tiver problemas.

    
por JohnG 14.08.2013 / 17:46
3

Quatro meses atrás, assumi a manutenção de um plugin popular. Antes de começar a trabalhar nele, o plugin não tinha uma atualização em dois anos. Eu fiz um monte de correções de bugs, lancei a nova versão e, dois dias depois, ouvi de um cara que disse que a nova versão causava a tela branca da morte em seu site. Depois que eu olhei para ele, ele ainda estava executando o WordPress 2.9.2, e minha atualização usou a função home_url, introduzida na versão 3.0. Eu não tenho idéia porque o cara decidiu atualizar este plugin imediatamente, mesmo que ele não tenha atualizado sua instalação do WordPress em 3 anos. Quando fiz a nova versão, nunca pensei em testar o WordPress 2.9.2.

Aqui está a moral da história: no arquivo readme.txt do seu plugin, há um "Requer pelo menos "número da versão no cabeçalho. Use-o. À medida que você faz atualizações, se não quiser testar versões antigas, incremente-as. Isso irá desencorajar os usuários que se recusarem a atualizar suas instalações do WordPress de atualizar seu plugin.

Atualmente, estou escrevendo um novo plug-in relacionado e estou pensando em criar apenas o WordPress 3.6, porque desejo usar a biblioteca getid3 incluída no núcleo. Não tenho o desejo de lançar um novo plugin para uma versão antiga do núcleo.

    
por Ben Miller 14.08.2013 / 22:36