Intereting Posts
Fix Pagination Directory на странице, заданной как Front Page / Главная страница Не можете оставлять комментарии к блогу в wp-multisite Функция запуска перед сохранением загруженного изображения Предотвратить функцию от повторного запуска, когда сообщение в определенной категории получает другую категорию? Запретить доступ к странице пользовательского входа для зарегистрированных пользователей Хотите изменить корень моего сайта Контактная форма 7 добавить идентификатор к переключателям Содержимое вытащили из шаблона страницы вместо редактора PHP-уведомления появляются при просмотре любой страницы в администраторе, но только для дочерней темы, используя код из WP Codex Как добавить пользовательские поля в пользовательский тип сообщения? пользовательский поиск автозаполнения Как запускать скрипты при создании нового блога в Buddypress? Код для автоматического истечения срока действия сообщений через 30 дней объединить два аргумента запроса в один вызов WP_Query Почему get_posts () не возвращает только выбранные должности категории из пользовательского типа сообщений?

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

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