我试图成为一个好的主题生成器,并通过设置API传递所有设置,但在清理回调函数中遇到了一些困难。
问题的核心是:默认情况下传入的$输入变量为空。我的$\\u POST[选项组]进展顺利(它拥有我期望在$input中看到的所有内容),但是,同样,$input是空的。我从哪里开始调试这个呢?
EDIT 1
作为对Chip的回应,以下是我的观点(显然是存根):
function lblg_sanitize_options( $input ){
global $lblg_shortname, $lblg_default_options;
echo "Input: ";
print_r($input);
如果我使用Oenology和
print_r($input);
, 我得到了预期的
Array(
等
EDIT 2
以下是
print_r($_REQUEST);
对于我的主题:
Array ( [option_page] => lblg_options [action] => update [_wpnonce] => 1f96eb2410 [_wp_http_referer] => /wp-admin/themes.php?page=lblg_options [lblg_options] => Array ( [layout_stylesheet] => Select a layout: [alt_stylesheet] => *none* [use_custom_header] => true [display_footer_copyright] => true [footer_copyright] => [footer_credit_text] => [save] => Save changes ) )
这是关于葡萄酒学的:
Array ( [option_page] => theme_oenology_options [action] => update [_wpnonce] => 748c46a1a1 [_wp_http_referer] => /wp-admin/themes.php?page=oenology-settings [theme_oenology_options] => Array ( [header_nav_menu_position] => below [header_nav_menu_depth] => 1 [display_social_icons] => on [rss_feed] => rss2 [facebook_profile] => [flickr_profile] => [linkedin_profile] => [myspace_profile] => [twitter_profile] => [youtube_profile] => [display_footer_credit] => false [submit-general] => Save Settings ) )
我看不出有什么不同。你能吗?
EDIT 3
不同的slug/短名称/页面名称可能会有冲突吗?
EDIT 4
以下是我注册的步骤:
function lblg_admin_init(){
global $lblg_shortname;
register_setting( \'lblg_options\', $lblg_shortname . \'_lblg_options\', \'lblg_sanitize_options\' );
}
这是我要说的,内部期权表:
settings_fields( \'lblg_options\' );
do_settings_sections( \'lblg_options\' );
设置本身都以类似于以下方式在一个大循环中注册:
add_settings_field( $key, $value[\'name\'], \'\', \'lblg_options\', $section );
还有什么想法?