2016-12-21 4 views
0

wp_enqueue_scriptでjsファイルを呼び出したいとします。ローカルxamppインストールでのwp_enqueue_scriptの異常な動作

私はそうのように、get_template_directory()使用:

$myfile = wp_normalize_path(get_template_directory().'/js/script.js'); 
$myversion = filemtime($myfile); 
wp_enqueue_script('myscript', $myfile , array('jquery'), $myversion, true); 

これは、サーバ上で動作します。私は$myfileをエコーし​​た場合、Webページ上で、それはへの絶対パスを返しながら、それは、/home/public_html/folder/wp-content/themes/mytwentysixteen/js/script.jsのように、実際のパスを返します。ファイルを正しく。

(上記のことに注意してください - 。私は get_template_directory_uriを使用した場合、少なくとも filemtime part-は失敗します)私の地元のXAMPPのインストール(Windowsマシン)上で

を、これは動作しません。

私はecho $myfileを行う場合は、それが正しいローカルパスを返します。

D:/path/to/folder/wp-content/themes/mytwentysixteen/js/script.js 

しかし、wp_enqueue_script以下、それはこのような何かを返すWebページ上:

http://localhost/folderD:pathtofolder/wp-content/themes/mytwentysixteen/js/script.js 

を、ページがに失敗しましたスクリプトを取得します。 これは、localhostのホームURLとローカルウィンドウのパスとの間の奇妙な結婚のようです。

wp_normalize_pathは役に立たないようです。

答えて

1

明らかに解決策は、get_template_directory()をスクリプトのエンキューに使用しないでくださいが、filemtimeのようなPHP関数に使用する必要があります。

$myfile = get_template_directory_uri().'/js/script.js'; 
$myversion = filemtime(get_template_directory().'/js/script.js'); 
wp_enqueue_script('myscript', $myfile , array('jquery'), $myversion, true); 

ここで私は問題なく、ファイルのタイムスタンプとXAMPPの仕事の両方を取得するためのスクリプトを取得するためにget_template_directory_uri()を使用し、get_template_directory()

したがって、解決策はそうのような2を、​​分離することです。

関連する問題