Pour obtenir le chemin d'accès à un plugin, vous pouvez utiliser plugin_dir_path(__FILE__)
- mais ceci doit évidemment être appelé depuis le plug-in.
Comment pouvez-vous de manière fiable obtenir le chemin du plugin B (pluginb/pluginb.php
) depuis le plug-in A?
Edit: On suppose que vous connaissez le slug du plug-in que vous recherchez (en fait, vous pouvez les obtenir à partir de get_plugins()
). Mais j'aimerais que cela fonctionne en général.
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 remonte à mon commentaire initial - dépendant de auquel plugin tiers faisant référence, de nombreux auteurs définissent leurs propres méthodes/constantes pour tenir le chemin du plugin - il serait logique de vérifier leur existence et de les utiliser à la place (si disponible).
Une méthode consiste donc à appeler plugin_dir_path()
dans le plug-in actuel et à remplacer votre propre nom de répertoire de plug-in par celui 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';
Utilisez WP_PLUGIN_DIR
constante dans votre pluginA, par exemple:
include_once(WP_PLUGIN_DIR.'/pluginb/pluginb.php');
Informations supplémentaires: https://codex.wordpress.org/Determining_Plugin_and_Content_Directories