it-swarm.dev

Como obter o diretório atual do plugin no WordPress?

Eu preciso pegar o diretório atual do plugin como 

[wordpress_install_dir]/wp-content/plugins/plugin_name

(se getcwd() chamado do plugin, ele retorna [wordpress_install_dir], a raiz da instalação)

obrigado pela ajuda

34
bog

Olhando para sua própria resposta @Bog, eu acho que você quer;

$plugin_dir_path = dirname(__FILE__);
33
TheDeadMedic

Por que não usar a função principal do WordPress projetada especificamente para esse propósito?

<?php plugin_dir_path( __FILE__ ); ?>

Veja a documentação do Codex aqui .

Você também tem

<?php plugin_dir_url( __FILE__ ); ?>

se o que você está procurando é um URI em oposição a um caminho de servidor.

Veja a documentação do Codex aqui .

IMO é sempre melhor usar o método de nível mais alto disponível no núcleo, e é isso. Isso torna seu código mais à prova do futuro.

66
Tom Auger

Isso realmente obterá o resultado desejado:

<?php plugin_dir_url(__FILE__); ?>

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

14
brenjt

Para obter o diretório do plugin, você pode usar a função Wordpress plugin_basename($file). Então você usaria é o seguinte para extrair a pasta e nome do arquivo do plugin:

$plugin_directory = plugin_basename(__FILE__); 

Você pode combinar isso com a URL ou o caminho do servidor do diretório do plugin. Portanto, você pode usar as constantes WP_PLUGIN_URL para obter a URL do diretório de plugins ou WP_PLUGIN_DIR para obter o caminho do servidor. Mas como Mark Jaquith mencionado em um comentário abaixo isso só funciona se os plugins residirem no diretório de plugins do Wordpress.

Leia mais sobre isso no Wordpress codex .

8
stefanglase
$full_path = WP_PLUGIN_URL . '/'. str_replace( basename( __FILE__ ), "", plugin_basename(__FILE__) );
  • WP_PLUGIN_URL - a URL do diretório de plugins
  • WP_PLUGIN_DIR - o caminho do servidor para o diretório de plugins 

Este link pode ajudar: http://codex.wordpress.org/Determining_Plugin_and_Content_Directories .

3
manish nautiyal

Tente isto:

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 (); retornará o URL do plug-in atual.

2
Pennywise83

Quando eu preciso pegar o diretório, não só para os plugins (plugin_dir_path), mas um mais genérico, você pode usar __DIR__, ele vai te dar o caminho do diretório do arquivo onde é chamado. Agora você pode usar a partir de functions.php ou outro arquivo!

Descrição:

O diretório do arquivo. Se usado dentro de um include, o diretório de O arquivo incluído é retornado. Isso é equivalente a Dirname (__FILE__). Este nome de diretório não possui uma barra final A menos que seja o diretório raiz.  1

1
Francisco Corrales Morales

Desde WP 2.6.0 você pode usar o método plugins_url() .

1
Idham Perdameian

Se você deseja obter o caminho do diretório atual dentro de um arquivo para as constantes mágicas __FILE__ e __DIR__ com a função plugin_dir_path() como:

$dir_path = plugin_dir_path( __FILE__ );

Caminho do diretório atual:  

/home/user/var/www/wordpress_site/wp-content/plugins/custom-plugin/

__FILE__ magic constant retorna caminho do diretório atual.

Se você quiser um nível acima do diretório atual. Você deve usar a constante mágica __DIR__ como:

Caminho atual:  

/home/user/var/www/wordpress_site/wp-content/plugins/custom-plugin/

$dir = plugin_dir_path( __DIR__ );

Um caminho de subida de nível:  

 /home/user/var/www/wordpress_site/wp-content/plugins/

__DIR__ magic constant retorna um caminho de diretório de nível acima.

0
Gufran Hasan