Advanced Custom Fields: Brug felt fra repeater til at indsætte titlel i ACF harmonika felt

For at gøre indholdssider mere overskuelige så kan det være en god måde at bruge ACF harmonika feltet for at pakke indhold ind så admin brugeren ikke skal scrolle så meget for at rette indhold. ACF harmonika feltet kan man give en fast titel, som fx. “Partnerskab”, men hvis man nu vil have det til at være en smule mere dynamisk og tilpasset indholdet i harmonikaen så kan man gøre brug af denne Jquery funktion. Funktionen ændre titlen i hver harmonika til det valgte felt i repeateren.

Funktionen indsættes i functions.php hvor jeg ved hjælp af admin_head handlingen indsætter kodestykket i wp-admin. Nu ved jeg, at der er en hel masse handlinger. Måske ville det i dette tilfælde være bedre at koble den til admin_print_scripts eller lignende. Jeg vil dog normalvis gemme funktionen i en ekstern fil, som er sat i kø til at blive loaded med admin_enqueue_scripts handlingen.


function admin_js() {
jQuery(document).ready(function ($) {
/*first set name of repeater and after name of the field you will use as title */
    dynamic_title_repeater_accordion('partnerskaber', 'titel'); 
    function dynamic_title_repeater_accordion(repeater_name, field_name) {
        var information_tabs = $("div[data-name='" + repeater_name + "']");
        if (information_tabs.length) {
            var selector = "tr:not(.acf-clone) td.acf-fields .acf-accordion-content div[data-name='" + field_name + "'] input";
            // add lister
            $(information_tabs).on('input', selector, function() {
                var me = $(this);
                me.closest('td.acf-fields').find('.acf-accordion-title label').text(me.val());
            });
            // trigger the function on load
            information_tabs.find(selector).trigger('input');
        }
    }
});
}
add_action('admin_head', 'admin_js');