将高级自定义字段添加到javascript

时间:2017-09-15 12:39:53

标签: javascript php jquery wordpress advanced-custom-fields

我在管理员中创建了一个ACF选项,因此用户可以通过管理员添加cookie通知文本...我使用的javascript脚本在javascript中创建了消息,因此我想要回显javascript中的ACF字段。

在我的cookie.js文件的顶部,我有:"<?php $cooke_msg = the_field('cookie_notice', 'option'); ?>";并且我在var中回显它:var msg = "<?php echo $cookie_msg; ?>";所以我文件的顶部如下所示:< / p>

"<?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的实际消息......有没有办法实际执行此操作?

1 个答案:

答案 0 :(得分:2)

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文件,&amp;把下面的代码放在那里。

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

 alert( mytheme_script_vars.alert );

});

现在访问您网站的任何页面。当然,您将获得具有您期望的字段值的警报。确保为$ post_id分配适当的值。我想这会对你有所帮助。 Codex参考链接了解更多详情:WP Localize Script Function