Как сделать у полей ACF options возможность выбора админом, на каких страницах их выводить?

Чтобы дать админу возможность выбирать страницы, на которых будут отображаться поля ACF options, вам потребуется использовать функцию add_options_page() в WordPress.

Вот подробные шаги, которые вы можете выполнить:

Шаг 1: Создайте функцию, которая будет использоваться для добавления страницы настроек ACF options. Вы можете разместить эту функцию в файле functions.php вашей темы или в отдельном плагине.

function acf_options_page() {
    // Создаем страницу настроек для ACF options
    add_options_page(
        'ACF Options',
        'ACF Options',
        'manage_options',
        'acf-options',
        'acf_options_page_callback'
    );
}
add_action('admin_menu', 'acf_options_page');

Шаг 2: Создайте функцию обратного вызова, которая будет отображать форму настроек ACF options на странице, когда администратор будет входить в панель управления WordPress.

function acf_options_page_callback() {
    // Отображаем заголовок страницы
    echo '<h1>ACF Options</h1>';
    
    // Выводим форму настроек
    echo '<form method="post" action="options.php">';
    settings_fields('my-acf-options'); // использование секции настроек
    do_settings_sections('my-acf-options'); // использование полей настроек
    submit_button();
    echo '</form>';
}

Шаг 3: Создайте функцию, которая будет регистрировать секцию и поля настроек ACF options.

function acf_options_settings() {
    // Регистрируем секцию
    add_settings_section(
        'my-acf-options',
        'ACF Options',
        'acf_options_section_callback',
        'my-acf-options'
    );
    
    // Регистрируем поле выбора страниц для отображения
    add_settings_field(
        'pages_to_display',
        'Pages to Display',
        'acf_pages_to_display_callback',
        'my-acf-options',
        'my-acf-options'
    );
    
    // Регистрируем поля ACF options
    // ...
    
    // Включение полей в список настроек ACF options
    register_setting('my-acf-options', 'pages_to_display');
    // ...
}
add_action('admin_init', 'acf_options_settings');

Шаг 4: Создайте функцию обратного вызова секции, которая будет отображать примечание или описание к настройкам ACF options.

function acf_options_section_callback() {
    echo '<p>Here you can configure ACF options.</p>';
}

Шаг 5: Создайте функцию обратного вызова поля выбора страниц для отображения. В этой функции вы можете использовать функцию wp_dropdown_pages() для отображения выпадающего списка всех страниц на сайте.

function acf_pages_to_display_callback() {
    $selected_pages = get_option('pages_to_display');
    
    // Получаем все страницы на сайте
    $args = array(
        'depth'        => 0,
        'show_date'    => '',
        'date_format'  => get_option('date_format'),
        'child_of'     => 0,
        'exclude'      => '',
        'include'      => '',
        'title_li'     => '',
        'echo'         => 0,
        'authors'      => '',
        'sort_column'  => 'menu_order',
        'link_before'  => '',
        'link_after'   => '',
        'walker'       => '',
        'post_type'    => 'page',
        'post_status'  => 'publish'
    );
    $pages = get_pages($args);
    
    // Выводим выпадающий список страниц
    echo '<select name="pages_to_display">';
    echo '<option value="">Select Pages</option>';
    foreach ($pages as $page) {
        if (is_array($selected_pages) && in_array($page->ID, $selected_pages)) {
            $selected = 'selected="selected"';
        } else {
            $selected = '';
        }
        echo '<option value="' . $page->ID . '" ' . $selected . '>' . get_the_title($page->ID) . '</option>';
    }
    echo '</select>';
}

Теперь в панели администратора появится страница "ACF Options", на которой администратор сможет выбрать страницы, на которых будут отображаться поля ACF options.