Criando um plugin com dependências

17

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

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 e também usando códigos de acesso personalizados. Por enquanto eu só preciso de um lugar para começar.

    
por DWils 04.09.2013 / 03:47
fonte

1 resposta

19

Sim, é possível criar um plug-in que estenda outro plug-in. Aqui estão algumas ideias sobre como você pode fazer isso:

  1. Um plug-in pode configurar suas próprias ações e ganchos de filtro (usando as funções do_action e apply_filter ) exatamente como o núcleo do WordPress. Se o plug-in que você está segmentando fizer isso, você poderá usar esses ganchos para alterar a funcionalidade.

  2. Se um plug-in usar uma estrutura orientada a objetos, você poderá estender as classes e construir o plugin original.

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

  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). Apenas 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á ativado ou não. Você pode usar a função is_plugin_active ; no entanto, isso só funciona nas páginas de administração. Alternativamente, você pode usar function_exists ou class_exists para verificar se uma determinada função ou classe do plugin original está disponível, o que lhe dirá que está sendo executado.

Lembre-se de que sempre que o plug-in original for atualizado, será necessário testar seu plug-in com a nova versão para procurar algo novo que possa entrar em conflito com seu plug-in.

    
por Ben Miller 04.09.2013 / 04:52
fonte

Tags