Pergunta sobre desenvolvimento com WordPress a partir do WordPress: class_exists não funciona quando outros plugins são carregados posteriormente

Um usuário perguntou ?

Olá, estou forjando um plugin e resolvo o problema carregando-o em uma biblioteca externa como se (!Class_exists(‘HTML5_Parser’)): require_once BWC_DIR. ‘lib/dompdf/lib/html5lib/Parser.php’; terminará se;

o nome da classe HTML5_Parser já é usado em um plugin instalado que vem em ordem alfabética mais tarde, mas não é detectado pela função class_exists(). se meu plugin vier depois do outro plugin instalado, aicme_exists() irá buscá-lo.

Existe outro método, talvez um método wordpress para descobrir quais nomes de classe já instalados os plugins usam no namespace global?

No manual só encontro isso:

if (! class_exists(‘WPOrg_Plugin’)) {

(@catacaustic)

1 ano, 4 meses atrás

Para verificar isso, depois que todos os plugins forem carregados, você deve tomar a ação apropriada. Por exemplo, a ação ‘olugins_loaded’ ocorre depois que todos os plugins foram carregados (como você esperaria do nome), então ela permite que você verifique se as classes existem depois que todos os outros plugins foram carregados.

add_action ('plugins_loaed', 'my_check_function');

function my_check_function () {
    if( !class_exists(‘HTML5_Parser’)) {
        require_once BWC_DIR . ‘lib/dompdf/lib/html5lib/Parser.php’;
    }
}

(@veto)

1 ano, 4 meses atrás

obrigado, eu finalmente consegui na mesma época que você postou isso.

exemplo:

function my_plugin_init()
{
  if( !class_exists( 'HTML5_Parser' ) ):
    require_once BWC_DIR . 'lib/dompdf/lib/html5lib/Parser.php';
    require_once BWC_DIR . 'lib/dompdf/lib/php-font-lib/src/FontLib/Autoloader.php';
    require_once BWC_DIR . 'lib/dompdf/lib/php-svg-lib/src/autoload.php';
    require_once BWC_DIR . 'lib/dompdf/src/Autoloader.php';
  endif;
}
add_action( 'plugins_loaded', 'my_plugin_init' );

Esta resposta foi modificada há 1 ano e 4 meses. Esta resposta foi modificada há 1 ano e 4 meses. Esta resposta foi modificada há 1 ano e 4 meses. Esta resposta foi modificada há 1 ano e 4 meses. Razão: definir código

Isto foi útil?

0 / 0

Deixe uma resposta 0

O seu endereço de email não será publicado. Campos obrigatórios são marcados *