2017-05-05 8 views
0

私は、クラスが初期化されたときにenqueue_scriptenqueue_styleを使用していくつかのJSとCSSを読み込むWordPressテーマやプラグインで使用するために書かれたPHPクラスを持っています。PHPで現在のファイルのURLを取得

クラスがロードされているディレクトリにURL(絶対パスではありません)を動的に取得する必要があります。このURLを資産ロード用にenqueue_scriptenqueue_styleに渡すことができます。

ディレクトリ構造 wp-content ├── themes │ ├── theme_name │ │ ├── my_class │ │ │ ├── my_class.php │ │ │ ├── js (need URL) │ │ │ │ ├── file.js* │ │ │ ├── css │ │ │ │ ├── file.css*
[dirname][1]のように動作しますが、ファイルのURLではないパスを返すPHP関数はありますか?

EDIT
my_classディレクトリは、テーマやプラグインでは、どこにでもドロップすることができなければならないので、私はクラスのディレクトリへのURLを取得するにはWordPressのコア機能に依存することはできません。

+0

入手したいものの例ですか?何を試しましたか?あなたはおそらく[get_site_url()](https://developer.wordpress.org/reference/functions/get_site_url/)... '$ file_relative_path =" ... "のようなものをチェックしたいでしょう。 $ url = get_site_url(null、$ file_relative_path、 'https'); '? –

+0

これはテーマまたはプラグインで使用できるため、get_site_urlは機能しません。クラスディレクトリはどこにでも置くことができるはずですので、WordPressのコア関数に頼ることはできません。 –

答えて

0

は、次のURLからこのソリューションをお試しください:

PHP: How to get URL of relative file

しかし、その代わりstr_replaceを使用してpreg_replace試みを使用します。

2

__DIR__現在のスクリプトのフォルダへのファイルパスを指定し、ドキュメントルート(ファイルがホストされているフォルダへのパス)を削除するだけで、URLパスを残しておくことができます:

$file_path = __DIR__; 
$url_path = str_replace($_SERVER['DOCUMENT_ROOT'], '', $file_path); 
+0

ありがとう、それは働いた。 –