web-dev-qa-db-fra.com

Comment obtenir le répertoire du plugin actuel dans WordPress?

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

34
bog

En regardant ta propre réponse @Bog, je pense que tu veux;

$plugin_dir_path = dirname(__FILE__);
33
TheDeadMedic

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.

66
Tom Auger

Cela donnera le résultat souhaité:

<?php plugin_dir_url(__FILE__); ?>

http://codex.wordpress.org/Function_Reference/plugin_dir_url

14
brenjt

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 .

8
stefanglase
$full_path = WP_PLUGIN_URL . '/'. str_replace( basename( __FILE__ ), "", plugin_basename(__FILE__) );
  • WP_PLUGIN_URL - l'URL du répertoire des plugins
  • WP_PLUGIN_DIR - le chemin du serveur vers le répertoire des plugins 

Ce lien peut aider: http://codex.wordpress.org/Determining_Plugin_and_Content_Directories .

3
manish nautiyal

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.

2
Pennywise83

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.

1

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.

0
Gufran Hasan