Criando um plugin com dependências

21

Estou tentando estender a funcionalidade de outro plug-in. Eu preciso obter dados dele em uma matriz para usar de uma maneira diferente do plug-in original. (Nesse caso, plug-ins de categorias e listagens do WPMUDev). Existe algo no Codex? Como posso criar um plug-in que pode usar outras funções de plug-ins? Posso estendê-los e construir as funções dos nós pais? Não tenho certeza se esses plugins estão usando classes ou apenas funções diretas.

Estou apenas tentando obter dados do plug-in em um widget da barra lateral (em um elemento de opção de formulário), mas eventualmente usarei isso para a área de conteúdo também usando códigos de acesso personalizados. Por enquanto, só preciso de um lugar para começar.

DWils
fonte
4
FWIW, existe um ticket de trilha sobre esse mesmo tópico core.trac.wordpress.org/ticket/22316
Norcross

Respostas:

22

Sim, é possível criar um plugin que estenda outro plugin. Aqui estão algumas idéias sobre como você pode fazer isso:

  1. Um plug-in pode configurar sua própria ação e ganchos de filtro (usando as funções do_actione apply_filter) da mesma forma que o núcleo do WordPress. Se o plugin que você está direcionando fizer isso, você poderá usar esses ganchos para alterar a funcionalidade.

  2. Se um plug-in usa uma estrutura orientada a objetos, você pode estender as classes e desenvolver o plug-in original.

  3. Você pode ler os dados armazenados no banco de dados pelo plug-in original e usá-lo em seu código.

  4. Você pode chamar qualquer função do plug-in original que desejar, depois de verificar se o plug-in está ativo e carregado (veja abaixo). Esteja ciente de quaisquer efeitos que a função possa ter além do valor retornado.

Você precisará verificar se o plug-in original está ou não ativado. Você poderia usar a is_plugin_activefunção; no entanto, isso funciona apenas nas páginas de administração. Como alternativa, você pode usar function_existsou class_existspara verificar se uma função ou classe específica do plug-in original está disponível ou não, o que indicaria que ele está em execução.

Lembre-se de que sempre que o plug-in original é atualizado, você precisa testar seu plug-in com a nova versão para procurar algo novo que possa entrar em conflito com seu plug-in.

Ben Miller - Restabelecer Monica
fonte