将高级自定义字段添加到javascript
问题描述:
我在管理员中创建了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的实际信息......有没有一种方法可以实现这一点?
答
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