【WordPress】プラグインのパスやURLを取得する方法

【WordPress】初心者向けにプラグインの作り方を解説

WordPressのプラグイン開発でつまずきがちな、パスやURLを取得する方法をまとめました。

目次

プラグインのパスやURLを取得する

以下のphpファイル内で記述した場合、どのように返されるかを見ていきます。

my-plugin>my-plugin-file.php

plugin_dir_path( __FILE__ )

ファイルが存在するディレクトリのサーバーパスを返します。

/home/user/example.com/public_html/wp-content/plugins/my-plugin/

plugin_dir_url( __FILE__ )

ファイルが存在するディレクトリのURLを返します。

https://example.com/wp-content/plugins/my-plugin/

plugins_url( ”, __FILE__ )

ファイルが存在するディレクトリのURL(スラッシュなし)を返します。

https://example.com/wp-content/plugins/my-plugin

第一引数に任意のパスを指定するとURLの末尾に追加され、ディレクトリからの相対パスとして返されます。

例:plugins_url( '/', __FILE__ );

plugin_dir_url( __FILE__ )と同じ結果になる。
https://example.com/wp-content/plugins/my-plugin/

例:plugins_url( 'js/script.js', __FILE__ );

https://example.com/wp-content/plugins/my-plugin/js/script.js

plugins_url()

引数を省略すると、プラグインディレクトリのURLを返します。

https://example.com/wp-content/plugins

__FILE__とはなんぞや

__FILE__ は、PHPで使用される特別なマジック定数で、現在のファイルのパスとファイル名を含んだ完全なパスを表します。

例えば、以下のようなパスを取得するために使用されます。

/home/user/example.com/public_html/wp-content/plugins/my-plugin/my-plugin-file.php 

WordPressのプラグイン開発などで、動的に現在のファイルのパスを取得する必要がある場合によく利用されます。

定数化しておくと使いやすい

実際にプラグインで使用する際には、定数を使ってプラグインのパスやURLを定義すると、後で何度も使う際に便利です。

// プラグインのURLとパスを定数化する
define( 'MY_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'MY_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );

これにより、プラグインのURLとパスが定数 MY_PLUGIN_URL と MY_PLUGIN_PATH に格納されます。

// CSSファイルを読み込む例
wp_enqueue_style(
    'my-plugin-style',
    MY_PLUGIN_URL . 'css/style.css'
);

// JavaScriptファイルを読み込む例
wp_enqueue_script(
    'my-plugin-script',
    MY_PLUGIN_URL . 'js/script.js',
    [],
    filemtime( MY_PLUGIN_PATH . 'js/script.js' ),
    true
);

// 画像ファイルのパスを使用する例
$image_url = MY_PLUGIN_URL . 'images/logo.png';

末尾のスラッシュを取り除く場合

末尾のスラッシュを取り除いて管理したい場合は、untrailingslashitを使用します。

// プラグインのURLとパスを定数化する(末尾のスラッシュを取り除く)
define( 'MY_PLUGIN_URL', untrailingslashit( plugin_dir_url( __FILE__ ) ) );
define( 'MY_PLUGIN_PATH', untrailingslashit( plugin_dir_path( __FILE__ ) ) );

スラッシュの扱いは、開発チームやプロジェクトの内容によって統一することが重要です。

おすすめWEBスクール

WEB制作やWEBデザインを学びたいなら、SNSでも話題の「デイトラ」がおすすめ!
どのコースも10万円前後と業界最安値で、副業や転職に向けて十分なスキルを身につけることができます。

役に立ったら他の方にシェア

お気軽にコメントどうぞ

コメントする

目次