Obtenir un chemin vers un autre plugin

10

Pour obtenir le chemin d'accès à un plugin, vous pouvez utiliser plugin_dir_path(__FILE__) - mais cela doit évidemment être appelé depuis le plug-in.

Comment pouvez-vous obtenir de manière fiable le chemin du plugin B ( pluginb/pluginb.php ) depuis le plug-in A?

Modifier: Il est supposé que vous connaissez le slug du plug-in que vous recherchez (en réalité, vous pouvez les obtenir à partir de get_plugins() ). Mais j'aimerais que cela fonctionne en général.

    
posée Stephen Harris 10.11.2012 - 13:43

3 réponses

8

Ma meilleure hypothèse serait:

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

return $dir;

Cependant, le danger réside toujours dans l'hypothèse du "nom de base" du plugin - un plugin bien écrit fonctionnera toujours, même si son répertoire et / ou son fichier principal ont été renommés (pour une raison quelconque).

Ce qui revient à mon commentaire initial - en fonction de auquel le plug-in tiers fait référence, de nombreux auteurs définissent leurs propres méthodes / constantes pour conserver le chemin du plug-in - il serait judicieux de vérifier pour leur existence & utilisez-les à la place (si disponible).

    
réponse donnée TheDeadMedic 10.11.2012 - 14:41
2

Donc, une méthode consiste à appeler plugin_dir_path() dans le plug-in actuel et à remplacer votre propre nom de répertoire de plug-in par celui-ci. du slug du plug-in que vous recherchez ( pluginb/pluginb.php ):

Donc, dans notre 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';
    
réponse donnée Stephen Harris 10.11.2012 - 14:51
0

Utilisez WP_PLUGIN_DIR constante dans votre pluginA, par exemple:

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

Informations supplémentaires: enlace

    
réponse donnée Harkály Gergő 08.05.2017 - 17:30

Lire d'autres questions sur les étiquettes