web-dev-qa-db-ja.com

WordPressで現在のプラグインディレクトリを取得する方法は?

次のような現在のプラグインディレクトリを取得する必要があります

_[wordpress_install_dir]/wp-content/plugins/plugin_name
_

(プラグインからgetcwd()が呼び出された場合、インストールのルートである_[wordpress_install_dir]_を返します)

手伝ってくれてありがとう

35
bog

あなた自身の答え@Bogを見て、私はあなたが欲しいと思う;

$plugin_dir_path = dirname(__FILE__);
35
TheDeadMedic

その目的のために特別に設計されたWordPressコア関数を使用しないのはなぜですか?

<?php plugin_dir_path( __FILE__ ); ?>

Codexのドキュメント here を参照してください。

あなたも持っています

<?php plugin_dir_url( __FILE__ ); ?>

探しているのがサーバーパスではなくURIである場合。

Codexのドキュメント here を参照してください。

IMOコアで利用可能な最高レベルの方法を使用することが常に最善であり、これがそれです。これにより、コードの将来性がより高まります。

70
Tom Auger

これにより、実際に必要な結果が得られます。

<?php plugin_dir_url(__FILE__); ?>

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

14
brenjt

プラグインディレクトリを取得するには、Wordpress function plugin_basename($file)。]を使用できます。したがって、次のように使用して、プラグインのフォルダーとファイル名を抽出します。

$plugin_directory = plugin_basename(__FILE__); 

これを、プラグインディレクトリのURLまたはサーバーパスと組み合わせることができます。そのため、定数WP_PLUGIN_URLを使用してプラグインディレクトリURLを取得するか、WP_PLUGIN_DIRを使用してサーバーパスを取得できます。ただし、下のコメントで Mark Jaquith が言及されているように、これはプラグインがWordpress pluginディレクトリにある場合にのみ機能します。

詳しくは Wordpress codex をご覧ください。

8
stefanglase
$full_path = WP_PLUGIN_URL . '/'. str_replace( basename( __FILE__ ), "", plugin_basename(__FILE__) );
  • WP_PLUGIN_URL –プラグインディレクトリのURL
  • WP_PLUGIN_DIR –プラグインディレクトリへのサーバーパス

このリンクが役立つ場合があります: http://codex.wordpress.org/Determining_Plugin_and_Content_Directories

3
manish nautiyal

これを試して:

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();現在のプラグインのURLを返します。

2
Pennywise83

プラグイン(plugin_dir_path)だけでなく、より一般的なディレクトリのディレクトリを取得する必要がある場合は、__DIR__、呼び出されたファイルのディレクトリのパスを提供します。 functions.phpまたは別のファイルから使用できるようになりました!

説明

ファイルのディレクトリ。インクルード内で使用された場合、インクルードされたファイルのディレクトリが返されます。これはdirname(__FILE__)。このディレクトリ名には、ルートディレクトリでない限り、末尾のスラッシュはありません。 1

WP 2.6.0から plugins_url() メソッドを使用できます。

1

そのためにファイル内の現在のディレクトリパスを取得する場合は、次のようにplugin_dir_path()関数を使用して定数__FILE__および__DIR__をマジックできます。

$dir_path = plugin_dir_path( __FILE__ );

CurrentDirectory Path:

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

__FILE__マジック定数は、現在のディレクトリパスを返します。

現在のディレクトリから1レベル上に移動する場合。 __DIR__マジック定数を次のように使用する必要があります。

現在のパス:

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

$dir = plugin_dir_path( __DIR__ );

1レベル上のパス:

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

__DIR__マジック定数は、1レベル上のディレクトリパスを返します。

0
Gufran Hasan