Obtenha um caminho para um plugin diferente

10

Para obter o caminho para um plug-in, você pode usar plugin_dir_path(__FILE__) - mas isso obviamente precisa ser chamado de dentro do plug-in.

Como você pode confiantemente obter o caminho para o plugin B ( pluginb/pluginb.php ) a partir do plug-in A?

Edit: Supõe-se que você conheça o slug do plug-in que você está procurando (na verdade, você pode obtê-lo em get_plugins() ). Mas eu gostaria que funcionasse geralmente.

    
por Stephen Harris 10.11.2012 / 13:43

3 respostas

8

Meu melhor palpite seria:

if ( ! is_file( $dir = WPMU_PLUGIN_DIR . '/pluginb/pluginb.php' ) ) {
    if ( ! is_file( $dir = WP_PLUGIN_DIR . '/pluginb/pluginb.php' ) )
        $dir = null;
}

return $dir;

No entanto, o perigo aqui ainda é a suposição de "basename" do plugin - um plugin bem escrito ainda funcionará mesmo quando seu diretório e / ou arquivo principal foi renomeado (por qualquer motivo).

O que volta ao meu comentário original - dependendo do qual plug-in de terceiros está se referindo, muitos autores definem seus próprios métodos / constantes para manter o caminho do plugin - faria sentido verificar por sua existência & use estes ao invés (se disponível).

    
por TheDeadMedic 10.11.2012 / 14:41
2

Portanto, um método é chamar plugin_dir_path() dentro do plug-in atual e substituir seu próprio nome de diretório de plug-in por aquele do slug do plug-in que você está procurando ( pluginb/pluginb.php ):

Então, dentro do nosso plug-in plugina/plugina.php ,

$plugin_b = str_replace('plugina/','pluginb/pluginb.php',plugin_dir_path(__FILE__));
echo $plugin_b; //Prints path/to/pluginb/pluginb.php';
    
por Stephen Harris 10.11.2012 / 14:51
0

Use WP_PLUGIN_DIR constant no seu pluginA, por exemplo:

include_once(WP_PLUGIN_DIR.'/pluginb/pluginb.php');

Informações adicionais: enlace

    
por Harkály Gergő 08.05.2017 / 17:30