Intereting Posts
Добавление описания в элементы управления настройками темы перенаправление не работает в ajax-функции Пользовательская таксономия не возвращает сообщений изменение wp-admin / widgets.php Различия между разработкой пользовательских тем для wordpress.com и wordpress.org? Как настроить значок страницы defualt для меню администратора? Как я могу зарегистрировать пользователя, проверяет, включен ли новый пользователь в таблицу предварительно одобренных пользователей? После того, как я установил название, он переписал все заголовки для отдельных страниц Я хочу добавить параметр URL ко всем URL-адресам Получить результат из meta_query () между двумя номерами помощь по сокращению короткого кода add_shortcode не работает Отражать вложенные категории по внешнему виду> меню Установка разной ширины и высоты для гравитатора Помощь в расширении пользовательского перетаскивания страниц на экране списка страниц администратора

Правильное выполнение действий

Привет, Я реализую основной плагин плюс добавление. Существует страница настроек, и я хотел бы подключить некоторые процедуры проверки для плагина addon в функции проверки правильности плагина. Однако он не работает. Можете ли вы указать мне в правильном направлении?

Вот выдержка из того, что у меня есть:

register_setting( 'myp_settings', 'myp_settings', 'myp_settings_validate' ); function myp_settings_validate( $input ) { $options = get_option( 'myp_settings' ); do_action( 'myp_settings_validate', $input, $options ); return $options; } 

Вышеупомянутый код находится в коде основного плагина, а ниже – в плагине аддонов:

 add_action( 'myp_settings_validate', 'myp_settings_et_validate', '', 2 ); function myp_settings_et_validate( $input, $options ) { if ( ! isset( $input['excerpt_enable'] ) || $input['excerpt_enable'] != '1' ) $options['excerpt_enable'] = 0; else $options['excerpt_enable'] = 1; if ( ! isset( $input['thumbnail_enable'] ) || $input['thumbnail_enable'] != '1' ) $options['thumbnail_enable'] = 0; else $options['thumbnail_enable'] = 1; return $options; } 

Solutions Collecting From Web of "Правильное выполнение действий"

do_action() не использует возвращаемое значение. Он больше похож на событие onload в JavaScript: вы не можете отменить загрузку. Чтобы изменить значение, вам нужны фильтры .

Если вы хотите изменить содержимое параметра, pre_update_option_{$option_name} в pre_update_option_{$option_name} очень поздно (с параметром с высоким приоритетом):

 add_filter( 'pre_update_option_myp_settings', 'myp_settings_et_validate', 100, 3 ); function myp_settings_et_validate( $option, $newvalue, $oldvalue ) { # do something awesome and return a value }