campusboy87
11/7/2018 - 7:59 PM

Оставляет указанные группы полей ACF на странице указанных терминов в админке, а на остальных удаляет.

Оставляет указанные группы полей ACF на странице указанных терминов в админке, а на остальных удаляет.

<?php

/**
 * Оставляет указанные группы полей ACF на странице указанных терминов в админке, а на остальных удаляет.
 *
 * @param array $field_groups
 *
 * @return array
 */
function acf_filter_field_groups_in_term( $field_groups ) {
    global $tag_ID;

    $name_groups = [ 'Тестовая группа полей' ];
    $term_ids    = [ 152 ];
    $screen_id   = get_current_screen()->id === 'edit-category';

    if ( is_array( $field_groups ) && ! in_array( $tag_ID, $term_ids ) && $screen_id ) {
        foreach ( $field_groups as $key => $group ) {
            if ( in_array( $group['title'], $name_groups ) ) {
                unset( $field_groups[ $key ] );
            }
        }
    }

    return $field_groups;
}

add_filter( 'acf/get_field_groups', 'acf_filter_field_groups_in_term' );