Je dois obtenir le répertoire actuel du plugin comme
[wordpress_install_dir]/wp-content/plugins/plugin_name
(Si getcwd()
appelé depuis le plug-in, il renvoie [wordpress_install_dir]
, la racine de l'installation)
merci pour l'aide
En regardant ta propre réponse @Bog, je pense que tu veux;
$plugin_dir_path = dirname(__FILE__);
Pourquoi ne pas utiliser la fonction principale de WordPress spécialement conçue à cet effet?
<?php plugin_dir_path( __FILE__ ); ?>
Voir la documentation du Codex ici .
Vous avez aussi
<?php plugin_dir_url( __FILE__ ); ?>
si ce que vous recherchez est un URI par opposition à un chemin de serveur.
Voir la documentation du Codex ici .
OMI, il est toujours préférable d'utiliser la méthode de niveau le plus élevé disponible dans Core, et c'est tout. Cela rend votre code plus évolutif.
Cela donnera le résultat souhaité:
<?php plugin_dir_url(__FILE__); ?>
http://codex.wordpress.org/Function_Reference/plugin_dir_url
Pour obtenir le répertoire du plugin, vous pouvez utiliser la fonction Wordpress plugin_basename($file)
. Donc, vous utiliseriez comme suit pour extraire le dossier et le nom du plugin:
$plugin_directory = plugin_basename(__FILE__);
Vous pouvez combiner cela avec l'URL ou le chemin du serveur du répertoire du plugin. Par conséquent, vous pouvez utiliser les constantes WP_PLUGIN_URL
pour obtenir l’URL du répertoire du plugin ou WP_PLUGIN_DIR
pour obtenir le chemin du serveur. Mais comme Mark Jaquith mentionné dans un commentaire ci-dessous, cela ne fonctionne que si les plugins résident dans le répertoire des plugins Wordpress.
En savoir plus à ce sujet dans le codex Wordpress .
$full_path = WP_PLUGIN_URL . '/'. str_replace( basename( __FILE__ ), "", plugin_basename(__FILE__) );
Ce lien peut aider: http://codex.wordpress.org/Determining_Plugin_and_Content_Directories .
Essaye ça:
function PluginUrl() {
//Try to use WP API if possible, introduced in WP 2.6
if (function_exists('plugins_url')) return trailingslashit(plugins_url(basename(dirname(__FILE__))));
//Try to find manually... can't work if wp-content was renamed or is redirected
$path = dirname(__FILE__);
$path = str_replace("\\","/",$path);
$path = trailingslashit(get_bloginfo('wpurl')) . trailingslashit(substr($path,strpos($path,"wp-content/")));
return $path;
}
echo PluginUrl (); renverra l'URL du plugin actuel.
Quand j'ai besoin d'obtenir le répertoire, pas seulement pour les plugins (plugin_dir_path), mais un nom générique, vous pouvez utiliser __DIR__
, il vous donnera le chemin du répertoire du fichier où est appelé. Vous pouvez maintenant utiliser depuis functions.php ou un autre fichier!
La description:
Le répertoire du fichier. Si utilisé dans une inclusion, le répertoire de le fichier inclus est retourné. Ceci est équivalent à dirname (
__FILE__
). Ce nom de répertoire ne comporte pas de barre oblique finale sauf s'il s'agit du répertoire racine. 1
Depuis WP 2.6.0, vous pouvez utiliser plugins_url()
method.
Si vous voulez obtenir le chemin du répertoire courant dans un fichier, vous pouvez utiliser les constantes magiques __FILE__
et __DIR__
avec plugin_dir_path()
comme:
$dir_path = plugin_dir_path( __FILE__ );
Chemin de répertoire actuel:
/home/user/var/www/wordpress_site/wp-content/plugins/custom-plugin/
La constante magique __FILE__
renvoie le chemin du répertoire actuel.
Si vous voulez monter d'un niveau à partir du répertoire actuel. Vous devriez utiliser la constante magique __DIR__
comme:
Chemin actuel:
/home/user/var/www/wordpress_site/wp-content/plugins/custom-plugin/
$dir = plugin_dir_path( __DIR__ );
Un chemin de niveau:
/home/user/var/www/wordpress_site/wp-content/plugins/
La constante magique __DIR__
renvoie un chemin de répertoire d'un niveau supérieur.