it-swarm-ko.tech

자바 스크립트 파일의 테마 경로

내 테마 파일에 대한 경로를 자바 스크립트 파일에 포함시켜야합니다. 나는 이것에 대해 어떻게 갈 것인가? 나는 이미 시도했다.

var templateUrl = "<?php get_stylesheet_directory_uri(); ?>";

function LightboxOptions() {
  this.fileLoadingImage = "'"+templateUrl+"/img/loading.gif'";
  this.fileCloseImage = "'"+templateUrl+"/img/close.png'";
  this.resizeDuration = 700;
  this.fadeDuration = 500;
  this.labelImage = "Image";
  this.labelOf = "of";
}

이것은 경로를 제공하지 않지만 실제 경로 대신 <?php get_stylesheet_directory_uri(); ?>을 삽입하기 만하면됩니다. 어떤 아이디어? 미리 감사드립니다.

12
charlenemasters

당신이 찾고있는 것은 wp_localize_script function 입니다.

스크립트를 큐에 넣을 때 이와 같이 사용합니다

wp_register_script( 'my-script', 'myscript_url' );
wp_enqueue_script( 'my-script' );
$translation_array = array( 'templateUrl' => get_stylesheet_directory_uri() );
//after wp_enqueue_script
wp_localize_script( 'my-script', 'object_name', $translation_array );

Style.js에는 다음이 있습니다.

var templateUrl = object_name.templateUrl;
...
31
david.binda

자바 스크립트 파일에 테마 경로를 추가하는 다음 두 가지 방법이 있습니다.

1) 당신은 functions.php 파일에서 wp_localize_script () wordpress에 의해 제안을 사용할 수 있습니다. 이렇게하면 헤더에 Javascript 객체가 만들어지며 런타임에 스크립트에서 사용할 수 있습니다.

예 :

wp_register_script('custom-js',get_stylesheet_directory_uri().'/js/custom.js',array(),NULL,true);
wp_enqueue_script('custom-js');

$wnm_custom = array( 'stylesheet_directory_uri' => get_stylesheet_directory_uri() );
wp_localize_script( 'custom-js', 'directory_uri', $wnm_custom );

다음과 같이 js 파일에서 사용할 수 있습니다.

alert(directory_uri.stylesheet_directory_uri); 

2) 템플릿 디렉토리 uri를 변수에 저장하고 나중에 다음과 같이 사용하는 Javascript 스 니펫을 만들 수 있습니다.이 코드를 header.php 파일에 추가하고이 파일을 사용하려는 js 파일 앞에 추가하십시오 통로. 예:

<script type="text/javascript">
var stylesheet_directory_uri = "<?php echo get_stylesheet_directory_uri(); ?>";
</script>

다음과 같이 js 파일에서 사용할 수 있습니다.

alert(stylesheet_directory_uri);
5
Vinod Dalvi

이 편리한 작은 방법을 사용하여 WordPress 테마 디렉토리를 가져 와서 전역 JavaScript 변수 (모두 자바 스크립트 파일 내에서)로 저장하기 시작했습니다.

function getThemeDir() {
    var scripts = document.getElementsByTagName('script'),
        index = scripts.length - 1,
        myScript = scripts[index];

    return myScript.src.replace(/themes\/(.*?)\/(.*)/g, 'themes/$1');
}
themeDir = getThemeDir();

이것은 다음 조건 이 충족 될 때만 작동합니다 :

1. 이 스 니펫은 외부 JavaScript 파일을 통해 실행됩니다.

<script src="/wp-content/themes/themename/assets/app.js"></script>

2. js 파일은 사이트의 테마 디렉토리 (또는 하위 디렉토리) 내에 있습니다.

1
blizzrdof77

이게 내가 한 일이야.

테마 파일/자산에 자바 스크립트 파일 및 이미지 배치

그리고 다음 파일을 편집하십시오.

Functions.php에서

/* for javascript (only when using child theme) */
wp_enqueue_script('my-script', get_template_directory_uri() . '-child/assets/test.js');
wp_localize_script('my-script', 'myScript', array(
    'theme_directory' => get_template_directory_uri() 
));

자바 스크립트 파일에서

var url = myScript.theme_directory + '-child/assets/';
1
TakaSoft

자바 스크립트 파일을 현지화하여 PHP 정의 된 값 (예 : 현지화 또는 디렉토리)으로 가득 찬 자바 스크립트 배열을 생성 할 수 있습니다.

wp_enqueue_script 또는 wp_register_script 등의 자바 스크립트 파일을 다음과 같이 쉽게로드 할 수 있습니다.

function localize_vars() {
    return array(
        'stylesheet_directory' => get_stylesheet_directory_uri()
    );
}

wp_enqueue_script( 'my_script', plugins_url( 'my_plugin/my_script.js' ), array( 'jquery' ) );
wp_localize_script( 'my_script', 'my_unique_name', localize_vars() );

자바 스크립트 파일에서 다음 변수를 호출 할 수 있습니다.

my_unique_name.stylesheet_directory
1
Mike Madern

자바 스크립트 파일이 관리 대시 보드에서로드 된 경우이 javascript 함수를 사용하여 WordPress 설치 루트를 가져올 수 있습니다.

function getHomeUrl() {
  var href = window.location.href;
  var index = href.indexOf('/wp-admin');
  var homeUrl = href.substring(0, index);
  return homeUrl;
}

다음과 같이 테마의 경로에 문의하십시오.

var myThemePath = getHomeUrl() + '/wp-content/themes/myTheme';
0
Jam Risser