2016-12-21 8 views
0

WordPress 환경에서.filemtime을 사용하여 버전 관리를 추가하려고했지만 실패했습니다.

내가 자동으로 다음과 같은 오류 메시지가 filemtime를 사용하여 내 스크립트 버전을 추가 할 수 있지만 얻으려고

:

$myfile = get_template_directory_uri() . '/js/script.js'; 
wp_enqueue_script('mywebsite-script',$myfile , array('jquery'), filemtime($myfile), true); 

파일의 경로가 올바른

Warning: filemtime() [function.filemtime]: stat failed for (file name) 

간단한 코드입니다 ,하지만 내가 말했듯이 나는 stat failed 메시지를 받는다.

if (file_exists($myfile)) 수표를 추가하면 전체 작업을 건너 뜁니다. 그러나 경로를 $myfile으로 표시하면 제대로 인쇄되고 브라우저에서 열 수 있습니다!

경로에 멋진 문자가 없습니다. 서버가 Windows에 없기 때문에 인코딩을 읽는 것이 그 이유 일 수 있지만 해결 방법이 무엇인지 알 수는 없습니다.

문제의 원인은 무엇입니까?

+0

파일 권한을 ... 그건 내 생각이다, PHP 않는 파일에 대한 권한이 있습니다. – ArtisticPhoenix

+0

@ArtisticPhoenix : 아직 PHP는 파일을 읽을 수 있으며, Wordpress를 통해 스크립트를 큐에 넣을 수 있습니다. 파일 시간을 읽을 수 없습니까? PHP를 통해 권한 문제인지 확인하는 방법이 있는지 알고 계십니까? – nico

답변

0

는 대신 실제 경로를 사용해야합니다

$myfile = get_template_directory_uri() . '/js/script.js'; 
$realpath = get_template_directory().'/js/script.js'; 
wp_enqueue_script('mywebsite-script',$myfile , array('jquery'), filemtime($realpath), true); 
+0

나는 이것이 실패한 줄 알았지 만 나는 틀렸다. 나는 부분을 주석 처리하는 동안 엉망이되었다. 이것은 효과가 있었다. 감사! 우스운 방법으로 나는'_uri' Wordpress를 사용하여 예제를 발견했습니다. – nico

+0

방금 ​​xampp에서 로컬로 깨 졌음을 알았습니다. 스크립트에 대한 "실제 경로"는 이제 다음과 같이 보입니다. http : // localhost/folderD : foldersonhardiskwithnospaces/wp-content/themes/theme/js/script.js' ... – nico

+0

get_template_directory()는 실제 경로를 반환합니다 예 : /var/www/wordpress/wp.local/wp-content/themes/twentyseventeen (리눅스) 나는 '디렉토리 경로'가 아닌 'uri'를 제공합니다. 내가 잘못 ? –