2017-09-15 4 views
0

관리자가 ACF 옵션을 작성하여 사용자가 관리자를 통해 쿠키 통지 텍스트를 추가 할 수 있도록했습니다 ... 사용중인 javascript 스크립트가 자바 스크립트 내에서 메시지를 생성하므로 자바 스크립트 내에서 ACF 필드를 에코합니다. 내 cookie.js의 상단에 javacript에 고급 사용자 정의 필드 추가

내가 가진 파일 : "<?php $cooke_msg = the_field('cookie_notice', 'option'); ?>"; 내가 이렇게 같은 VAR 내에서 반향 해요 : var msg = "<?php echo $cookie_msg; ?>"; 그래서 내 파일의 상단은 다음과 같습니다

"<?php $cooke_msg = the_field('cookie_notice', 'option'); ?>"; 

(function(){ 

    //Change these values 
    var msg = "<?php echo $cookie_msg; ?>"; 
    var closeBtnMsg = "OK"; 
    var privacyBtnMsg = "Privacy Policy"; 
    var privacyLink = "https://www.google.com"; 

    //check cookies 
    if(document.cookie){ 
    var cookieString = document.cookie; 
    var cookieList = cookieString.split(";"); 
    // if cookie named OKCookie is found, return 
    for(x = 0; x < cookieList.length; x++){ 
    if (cookieList[x].indexOf("OKCookie") != -1){return}; 
    } 
    } 

내가 '무엇 내가 사이트를 볼 때 : <?php echo $cookie_msg; ?>이 아닌 ACF의 실제 메시지가 아닙니다 ... 실제로이 작업을 수행하는 방법이 있습니까?

답변

0

Wordpress는 js 파일에 PHP 변수 데이터를 전달하는 좋은 기능을 제공합니다.

테마 functions.php 페이지에이 코드를 입력하십시오.

function mytheme_load_scripts() { 

    wp_enqueue_script('mytheme-script', get_template_directory_uri() . '/js/mytheme-script.js'); 
    wp_localize_script('mytheme-script', 'mytheme_script_vars', array(
     'alert' => get_field("cookie_notice",$post_id) 
     ) 
    ); 

} 
add_action('wp_enqueue_scripts', 'mytheme_load_scripts'); 

그리고 테마 루트 디렉토리에 하나의 js 폴더를 만드십시오. 그 디렉토리 안에 mytheme-script.js 파일이라는 이름의 js 파일을 만들고 & 아래 코드를 넣으십시오.

jQuery(document).ready(function($) { 

alert(mytheme_script_vars.alert); 

}); 

이제 사이트의 모든 페이지를 방문하십시오. 분명히 당신은 당신의 욕구 필드 가치에 대한 경고를 받게 될 것입니다. $ post_id에 적절한 값을 할당하십시오. 나는 이것이 당신을 도울 것이라고 생각합니다. 자세한 내용은 CODEX 참조 링크 : WP Localize Script Function