尝试在 wordpress javascript 中提取 acf 字段时出现错误

Posted

技术标签:

【中文标题】尝试在 wordpress javascript 中提取 acf 字段时出现错误【英文标题】:I have error when try to extract acf field in wordpress javascript 【发布时间】:2021-01-12 00:15:24 【问题描述】:

这样写就OK了:

<script>
$(document).ready(function()

    var user_id = '<?php echo get_current_user_id(); ?>'; // Test ok
    var subject = "<?php echo the_field('subject', 'user_1'); ?>"; // For test
    $("#subject").val(subject); // Extract successfully
    
);
</script>

但是当我使用动态变量“user_id”时出现空白错误,如下所示:

<script>
$(document).ready(function()

    var user_id = '<?php echo get_current_user_id(); ?>'; // Test ok
    var subject = "<?php echo the_field('subject', 'user_" + user_id + "'); ?>"; // Blank error
    $("#subject").val(subject);
    
);
</script>

你知道我哪里错了吗?

【问题讨论】:

【参考方案1】:

为什么你甚至使用这种方法它不是最佳的。 请不要在 PHP 文件中使用 javascript。为了使它更正式,请使用“wp_localize_script”

所以是这样的:

wp_localize_script( 'the-js-handler-you-want-to-have-this-object', 'siteData', [
    'subject' => the_field( 'subject', 'user_' . get_current_user_id() ),
] );

然后在Js文件中,就可以这样使用了:

console.log( siteData.subject )

请注意您的案例的代码修复是“”

var user_id = '<?php echo get_current_user_id(); ?>';
var subject = "<?php echo the_field( 'subject', 'user_' + user_id ); ?>";

【讨论】:

var subject = "";这无法在javascript中获取参数“user_id”,它只是块引用中的文本“”【参考方案2】:

嗯,我终于成功了

我在块引用中使用 php 语法,而不是 javascript 语法 因为javascript语法在php代码中会被误解

var subject = "<?php echo the_field('subject', 'user_' .get_current_user_id() ); ?>";

【讨论】:

以上是关于尝试在 wordpress javascript 中提取 acf 字段时出现错误的主要内容,如果未能解决你的问题,请参考以下文章

我正在尝试创建非常简单的 wordpress 插件,但我的 javascript 无法正常工作

如何在 Wordpress 插件中加载 Javascript

如何在 wordpress 帖子区域中添加自定义 javascript?

在 Wordpress 插件中排队 Javascript 和 jQuery

WordPress JavaScript

如何使用 javascript 在 wordpress 中自动选择一个类别?