2016-12-21 49 views
0

我想用wp_enqueue_script調用js文件。wp_enqueue_script在本地xampp安裝上的奇怪行爲

我用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,它返回一個真正的路徑,像/home/public_html/folder/wp-content/themes/mytwentysixteen/js/script.js,而在網頁上它返回到絕對路徑文件正確。

(注意上面 - 如果我用get_template_directory_uri至少filemtime兼職會失敗)

在我的本地XAMPP安裝(Windows機器),這是行不通的。

如果我做echo $myfile,它返回正確的本地路徑:

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

然而,隨着wp_enqueue_script,網頁上的返回是這樣的:

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); 

這裏我用get_template_directory_uri()檢索腳本,get_template_directory()獲取文件的時間戳和兩個工作在XAMPP沒有問題。