No wp-settings.php, o WordPress primeiro verifica se há plugins de uso obrigatório (plug-ins na mu-pluginspasta opcional ) e os carrega.
Então, se você estiver executando uma instalação multisite, ele verifica plug-ins ativados pela rede e os carrega.
Em seguida, ele verifica todos os outros plug-ins ativos, observando a active_pluginsentrada da wp_optionstabela do banco de dados e os percorre. Os plugins serão listados em ordem alfabética.
O problema é que geralmente não importa em que ordem cada plug-in individual é carregado, porque plug-ins escritos corretamente usarão ganchos do WordPress, que permitem conectar funcionalidades em pontos específicos posteriormente na inicialização do WordPress. (Plugins escritos corretamente também prefixam suas funções e classes para que não haja conflitos.)
Depende totalmente do plugin. O WordPress carrega apenas um arquivo no plug-in, o que geralmente é chamado the-plugin-name.phpe contém o título, a descrição, o autor etc. na parte superior. Cabe ao plugin carregar o restante de seus arquivos, usando require_onceand wp_enqueue_scripte outros enfeites.
Portanto, se eu criar um plug-in e depois lançar um plug-in complementar que deve ser executado após a execução do plug-in original, como posso garantir esse pedido?
Urok93
Realmente depende do que você está tentando fazer. Mas geralmente você configuraria cada um deles para executar em um gancho específico usando a função add_action (), que permite definir a prioridade. codex.wordpress.org/Function_Reference/add_action
SeventhSteel
@ SeventhSteel Mas e se um plug-in depender do gancho criado por outro plug-in. Se um plug-in usa apply_filters()para criar um gancho, mas é executado antes de um plug-in que usa add_filter(), ainda funcionará? Logicamente, parece que apply_filters()já foi acionado, então as add_filter()chamadas no segundo plugin não farão nada. Importa em que ordem os plug-ins são carregados ao usar apenas ganchos criados por plug-ins?
trusktr
O que importa é o que é carregado com o tempo apply_filters(). add_filter()deve executar antes apply_filters(). Se add_filter()estiver em um arquivo de plug-in e não em outra função, ele será executado no plugins_loadedgancho, o que geralmente acontece antes que você precise apply_filters().
SeventhSteel
Um cenário comum é ter vários plugins que acrescentam seu conteúdo depois the_content- como é determinada a ordem de aparência?
Dan Knauss 23/03
9
Acho que é útil incluir uma ação de 'carregamento tardio' no meu plug-in que é executada depois que todos os plug-ins concluíram seu carregamento da seguinte maneira:
add_action('plugins_loaded','my_late_loader');
A função my_late_loader é iniciada depois de todos os outros plugins, o que me permite usar ganchos definidos por outros plugins em minha própria função my_other_function, que é iniciada em 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);}
Um pouco complicado (eu sei), mas isso garante que ganchos em outros plug-ins sejam criados antes de serem adicionados, independentemente da ordem de carregamento do plug-in.
Respostas:
Resposta à primeira pergunta:
No
wp-settings.php
, o WordPress primeiro verifica se há plugins de uso obrigatório (plug-ins namu-plugins
pasta opcional ) e os carrega.Então, se você estiver executando uma instalação multisite, ele verifica plug-ins ativados pela rede e os carrega.
Em seguida, ele verifica todos os outros plug-ins ativos, observando a
active_plugins
entrada dawp_options
tabela do banco de dados e os percorre. Os plugins serão listados em ordem alfabética.Aqui está a ordem em que o WordPress carrega praticamente tudo: http://codex.wordpress.org/Action_Reference#Actions_Run_During_a_Typical_Request
O problema é que geralmente não importa em que ordem cada plug-in individual é carregado, porque plug-ins escritos corretamente usarão ganchos do WordPress, que permitem conectar funcionalidades em pontos específicos posteriormente na inicialização do WordPress. (Plugins escritos corretamente também prefixam suas funções e classes para que não haja conflitos.)
Mais informações sobre a API do plugin: http://codex.wordpress.org/Plugin_API/
Resposta à segunda pergunta:
Depende totalmente do plugin. O WordPress carrega apenas um arquivo no plug-in, o que geralmente é chamado
the-plugin-name.php
e contém o título, a descrição, o autor etc. na parte superior. Cabe ao plugin carregar o restante de seus arquivos, usandorequire_once
andwp_enqueue_script
e outros enfeites.fonte
apply_filters()
para criar um gancho, mas é executado antes de um plug-in que usaadd_filter()
, ainda funcionará? Logicamente, parece queapply_filters()
já foi acionado, então asadd_filter()
chamadas no segundo plugin não farão nada. Importa em que ordem os plug-ins são carregados ao usar apenas ganchos criados por plug-ins?apply_filters()
.add_filter()
deve executar antesapply_filters()
. Seadd_filter()
estiver em um arquivo de plug-in e não em outra função, ele será executado noplugins_loaded
gancho, o que geralmente acontece antes que você preciseapply_filters()
.the_content
- como é determinada a ordem de aparência?Acho que é útil incluir uma ação de 'carregamento tardio' no meu plug-in que é executada depois que todos os plug-ins concluíram seu carregamento da seguinte maneira:
A função my_late_loader é iniciada depois de todos os outros plugins, o que me permite usar ganchos definidos por outros plugins em minha própria função my_other_function, que é iniciada em my_late_loader
Um pouco complicado (eu sei), mas isso garante que ganchos em outros plug-ins sejam criados antes de serem adicionados, independentemente da ordem de carregamento do plug-in.
fonte