如何在 Wordpress functions.php 中使用高级自定义字段对脚本进行入队和出队?
How to enqueue and dequeue scripts with Advanced Custom Fields in Wordpress functions.php?
我想在 Wordpress 后端的管理面板中创建带有高级自定义字段的复选框,可以启用和禁用脚本。
我创建了一个复选框字段,将其命名为 import_animejs
并选中了它。然后使用 acf/load_field 将脚本加入队列,但我遗漏了一些东西,因为它不起作用。
这是我的代码:
function acf_checkbox_scripts() {
wp_register_script('animejs', get_stylesheet_directory_uri() . '/bower_components/animejs/lib/anime.min.js', array('jquery'),'1.1', true);
}
add_action( 'wp_enqueue_scripts', 'acf_checkbox_scripts', 5 );
function load_field_import_animejs( $field ) {
wp_enqueue_script('animejs');
return $field;
}
add_filter('acf/load_field/name=import_animejs', 'load_field_import_animejs');
我希望过滤器识别出 import_animejs 被打勾并入队 anime.js 但它没有。
更新:非常感谢 Lachlan 的回答,这很有效,为了澄清起见,我完全删除了上面发布的代码中的 acf/load_field "load_field_import_animejs" 函数。
你需要做一个if语句,检查字段是否为true
这可以通过以下方式完成:
function acf_checkbox_scripts() {
if ( get_field( 'import_animejs', 'options' ) ) { // only include 'options' if the acf field is on an acf options page, if not use the post_id of that page
wp_register_script('animejs', get_stylesheet_directory_uri() . '/bower_components/animejs/lib/anime.min.js', array('jquery'),'1.1', true);
wp_enqueue_script('animejs');
}
}
add_action( 'wp_enqueue_scripts', 'acf_checkbox_scripts', 5 );
我想在 Wordpress 后端的管理面板中创建带有高级自定义字段的复选框,可以启用和禁用脚本。
我创建了一个复选框字段,将其命名为 import_animejs
并选中了它。然后使用 acf/load_field 将脚本加入队列,但我遗漏了一些东西,因为它不起作用。
这是我的代码:
function acf_checkbox_scripts() {
wp_register_script('animejs', get_stylesheet_directory_uri() . '/bower_components/animejs/lib/anime.min.js', array('jquery'),'1.1', true);
}
add_action( 'wp_enqueue_scripts', 'acf_checkbox_scripts', 5 );
function load_field_import_animejs( $field ) {
wp_enqueue_script('animejs');
return $field;
}
add_filter('acf/load_field/name=import_animejs', 'load_field_import_animejs');
我希望过滤器识别出 import_animejs 被打勾并入队 anime.js 但它没有。
更新:非常感谢 Lachlan 的回答,这很有效,为了澄清起见,我完全删除了上面发布的代码中的 acf/load_field "load_field_import_animejs" 函数。
你需要做一个if语句,检查字段是否为true
这可以通过以下方式完成:
function acf_checkbox_scripts() {
if ( get_field( 'import_animejs', 'options' ) ) { // only include 'options' if the acf field is on an acf options page, if not use the post_id of that page
wp_register_script('animejs', get_stylesheet_directory_uri() . '/bower_components/animejs/lib/anime.min.js', array('jquery'),'1.1', true);
wp_enqueue_script('animejs');
}
}
add_action( 'wp_enqueue_scripts', 'acf_checkbox_scripts', 5 );