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
Olhando para sua própria resposta @Bog, eu acho que você quer;
$plugin_dir_path = dirname(__FILE__);
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.
Isso realmente obterá o resultado desejado:
<?php plugin_dir_url(__FILE__); ?>
http://codex.wordpress.org/Function_Reference/plugin_dir_url
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 .
$full_path = WP_PLUGIN_URL . '/'. str_replace( basename( __FILE__ ), "", plugin_basename(__FILE__) );
Este link pode ajudar: http://codex.wordpress.org/Determining_Plugin_and_Content_Directories .
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.
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
Desde WP 2.6.0 você pode usar o método plugins_url()
.
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.