Нужна помощь по санированию

У меня есть тема для обзора, и я иногда добавляю раздел 'type' => 'select' в несколько случаев.

$wp_customize->add_setting( 'personal_lite_post_link', array( 'default' => 'enable', 'sanitize_callback' => 'personal_lite_select_callback' ) ); $wp_customize->add_control('postlink-options', array( 'label' => esc_html__('Post navigation', 'personal-lite'), 'section' => 'personal_lite_post', 'settings' => 'personal_lite_post_link', 'type' => 'select', 'choices' => array('enable' => esc_html__('Enable', 'personal-lite'), 'disable' => esc_html__('Disable', 'personal-lite')) ) ); 

и дезинфекция

 function personal_lite_select_callback($input) { $valid = array( 'lightslategrey' => esc_html__('Grey', 'personal-lite'), 'seagreen' => esc_html__('Green', 'personal-lite'), 'enable' => esc_html__('Enable', 'personal-lite'), 'disable' => esc_html__('Disable', 'personal-lite'), ); if (array_key_exists($input, $valid)) { return $input; } else { return ''; } } 

Теперь рецензент просит разбить санитарию на две функции? как это сделать?

Вот точное слово от рецензента.

 I'm a fan of whitelisting for sanitization. However, this function should be broken into two separate functions: Only some settings can have some of those keys. Make sure the setting is valid by using the appropriate whitelist function for that setting. 

Как это можно решить? пожалуйста помогите.

Solutions Collecting From Web of "Нужна помощь по санированию"

Честно говоря, для поля выбора не так важно, какие варианты для дезинфекции поля и на самом деле то, что вы делаете. Я не верю, что это хорошая идея, если пользователь хочет отфильтровать ваши настройки, чтобы добавить новые параметры в поле выбора. Что еще более важно, вы пытаетесь дезинфицировать вывод, который является строковым значением. Поэтому, используя wp_strip_all_tags или даже esc_html для обратного вызова sanitize, я считаю, что это было бы лучше. Ваш вход по-прежнему будет дезинфицирован за вредоносный код, но также позволит упростить настройку с помощью дочерней темы.

Но с точки зрения того, что ваш рецензент говорит вам, скорее всего, вы используете функцию personal_lite_select_callback для нескольких параметров выбора в customizer, у которых есть разные значения, поэтому они хотят, чтобы вы создавали новую функцию для каждого.