2017-09-15 94 views
0

我在管理員中創建了ACF選項,因此用戶可以通過管理員添加Cookie通知文本...我使用的JavaScript腳本在javascript內創建消息,所以我想要在javascript中回顯ACF字段。將高級自定義字段添加到javascript

在我cookie.js的頂端文件我有:"<?php $cooke_msg = the_field('cookie_notice', 'option'); ?>";,我喜歡這樣一個變種中呼應它: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提供了很好的功能來將PHP可變數據傳遞給js文件。

把這段代碼放到你的主題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

相關問題