Prática recomendada para include plugins como parte de um tema?

Estou trabalhando em um tema que inclui algumas funcionalidades que desenvolvi como complementos separados (como eu estou esperando liberá-los de forma independente).

Gostaria de include esses plugins como parte do núcleo do tema e notei que alguns desenvolvedores incluem plugins como arquivos ou subdiretórios junto com seu tema, mas ao longo do tempo que podem levar a manter duas versões do mesmo plugin – um para o repository de plugins, um para o tema – mas eu gostaria de evitar isso, se possível.

Qual a melhor prática para include plugins como parte de um tema?

Solutions Collecting From Web of "Prática recomendada para include plugins como parte de um tema?"

Se você planeja liberá-los de forma independente, libere-os de forma independente e tente levá-los ambos hospedados no repository WP. Isso permitirá que você atualize os sistemas remotamente e mantenha as pessoas usando o sistema mais atualizado possível.

Então, no seu tema, use is_plugin_active() para filtrar seus comandos. Se você tem um recurso de tema que requer um plugin, use is_plugin_active() para mudar dinamicamente usando o recurso ou irritar o usuário para instalar o plugin.

O importante a ter em mente é que seu tema ainda deve funcionar se os plugins não estiverem instalados. Não precisa ter o mesmo conjunto de resources ricos, mas também não deve quebrar se decidirem remover ou desativar um dos outros plugins.

Alternativamente, se você sabe que um determinado plugin não vai mudar por muito tempo (eu uso alguns plugins que adicionam / removem filtros WP específicos) você pode soltar o arquivo PHP em um diretório /library com seu tema e include() o arquivo em functions.php . Então, a funcionalidade está habilitada por padrão – a compensação é que agora você está mantendo duas versões do plugin (como você mencionou na sua pergunta original).

Basicamente você tem três possíveis casos:

  • tema e plugin ambos instalados;
  • apenas o tema está instalado;
  • apenas o plugin está instalado.

Tenha em conta o que é mais provável que seja atualizado:

  • plug-in hospedado no repository – provável;
  • tema hospedado-hospedado – provável;
  • não é o tema hospedado no repository ou o plugin – improvável;
  • tema infantil – altamente improvável (não pode ser hospedado no repository, mesclagem manual de mudanças, porque deve ser personalizado pelo usuário final).

Então, em geral, é uma boa idéia manter o mesmo código (semelhante, se não idêntico) e carregá-lo no tema condicionalmente quando o plugin não estiver presente. Como, como agora, os plugins são mais fáceis e mais comuns para atualizar.

Obviamente, o tema deve ser capaz de fazer uso do plug-in agrupado ou separado e o plug-in não deve depender do código do tema.

A melhor prática (mas complexa) é criar suas extensões como independente do contexto (também conhecido como framework) e usar o carregador personalizado para verificar versões e carregar as mais recentes disponíveis. Para um exemplo prático de abordagem de estrutura, veja scbFramework, que é distribuído como um plugin separado e usado em vários outros plugins.