Em que ordem o WordPress carrega os arquivos do plugin?

16

Em que ordem os plugins são carregados no WordPress?

E na pasta de um plugin em particular, que ordem é seguida para o carregamento?

    
por urok93 26.08.2012 / 23:28

2 respostas

21

Responda à primeira pergunta:

  1. Em wp-settings.php , o WordPress primeiro verifica se há algum plug-in obrigatório (plug-ins na pasta opcional mu-plugins ) e os carrega.

  2. Então, se você estiver executando uma instalação multisite, ele verifica se há plug-ins ativados pela rede e os carrega.

  3. Em seguida, ele verifica todos os outros plug-ins ativos observando a entrada active_plugins da tabela de banco de dados wp_options e percorre esses. Os plugins serão listados em ordem alfabética.

O pedido do WordPress carrega praticamente tudo: enlace

O problema é que, normalmente, não importa em que ordem cada plug-in individual é carregado, porque os plugins escritos adequadamente usam ganchos do WordPress, que permitem que você conecte a funcionalidade em pontos específicos posteriormente na inicialização do WordPress. (Plugins apropriadamente escritos também prefixarão suas funções e classes para que não haja nenhum conflito.)

Mais informações sobre a API do plug-in: enlace

Responda à segunda pergunta:

Depende totalmente do plug-in. O WordPress carrega apenas um arquivo no plug-in, aquele que geralmente é denominado the-plugin-name.php e contém o título, a descrição, o autor etc. na parte superior. Cabe ao plug-in carregar o restante de seus arquivos usando require_once e wp_enqueue_script e outros.

    
por SeventhSteel 26.08.2012 / 23:58
4

Acho útil incluir uma ação de "carregamento tardio" no meu plug-in, que é executada depois que todos os plug-ins tiverem concluído sua carga assim:

add_action('plugins_loaded', 'my_late_loader');

A função my_late_loader é então iniciada depois de todos os outros plugins que me permitem usar ganchos definidos por outros plugins em minha própria função my_other_function que é iniciada dentro de my_late_loader

/**
 * Late loading function for actions that must run after all plugins 
 * have loaded
 */
function my_late_loader(){
    add_action( 'some_hook', 'my_other_function', 10, 1);
}

Bit complicado (eu sei), mas isso garante que ganchos em outros plugins sejam criados antes de serem adicionados, independentemente da ordem de carregamento do plug-in.

    
por Clinton 10.07.2017 / 14:43

Tags