我正在使用wordpress 4.7.2。
我正在为我的自定义主题创建一个自定义部分。这是我的选择控件。
$wp_customize->add_setting( $this->slug . \'_blog[pagination_type]\', array(
\'default\' => \'classic-pagination\',
\'transport\' => \'postMessage\',
\'type\' => \'theme_mod\',
\'sanitize_callback\' => \'my_theme_sanitize_select\',
) );
$wp_customize->add_control( $this->slug . \'_blog[pagination_type]\', array(
\'label\' => \'Pagination Type\',
\'section\' => $this->slug . \'_blog_section\',
\'type\' => \'select\',
\'choices\' => array(
\'classic-pagination\' => \'Classic Pagination\',
\'load-more-button\' => \'Load More Button\'
),
\'priority\' => 18,
) );
我的sanitize\\u回调函数是
public function my_theme_sanitize_select( $input, $setting ) {
// Ensure input is a slug
$input = sanitize_key( $input );
// Get list of choices from the control
// associated with the setting
$choices = $setting->manager->get_control( $setting->id )->choices;
// If the input is a valid key, return it;
// otherwise, return the default
return ( array_key_exists( $input, $choices ) ? $input : $setting->default );
}
尝试保存数据时显示错误无效值。
我甚至尝试了使用just sanitize\\u键功能,但无法正确执行
public function my_theme_sanitize_select( $input ) {
return sanitize_key( $input );
}
然后甚至
public function my_theme_sanitize_select( $input ) {
return $input;
}
以及
public function my_theme_sanitize_select( $input ) {
return true;
}
但当我没有调用任何消毒功能时,它工作正常。这意味着我在创建sanitize\\u回调()时犯了一些错误,但在
reference 回调函数也具有相同的命名和函数定义。
之后,我搜索了类似的问题,得到了one 但是解决不了这个问题,请帮帮我。
我查了核心代码,发现WP_Customize_Setting
班sanitize()
我的输入数据变得null
. 但无法得到更多的想法。