Как поставить в очередь и снять сценарии с расширенных пользовательских полей в Wordpress functions.php? - PullRequest
0 голосов
/ 05 апреля 2019

Я хочу создать флажки с расширенными настраиваемыми полями в административной панели в бэкэнде 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, но это не так.

Обновление: большое спасибо ответу Лахлана, это работает, и просто для пояснения я полностью удалил функцию acf / load_field "load_field_import_animejs" в кодеЯ написал выше.

1 Ответ

0 голосов
/ 05 апреля 2019

Вам нужно сделать оператор 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 );
...