2013-05-08 2 views
1

Im пытается сделать register_settings немного более чистым для моего плагина. Теперь это выглядит так:WordPress: register_settings helper

add_action('admin_init', 'hpblogposts_register_settings'); 
function hpblogposts_register_settings() { 
    register_setting('hpblogposts_settings_options_group', 'linkid01'); 
    register_setting('hpblogposts_settings_options_group', 'linktext01'); 
    register_setting('hpblogposts_settings_options_group', 'linkalt01'); 
    register_setting('hpblogposts_settings_options_group', 'linkid02'); 
    register_setting('hpblogposts_settings_options_group', 'linktext02'); 
    register_setting('hpblogposts_settings_options_group', 'linkalt02'); 
    register_setting('hpblogposts_settings_options_group', 'linkid03'); 
    register_setting('hpblogposts_settings_options_group', 'linktext03'); 
    register_setting('hpblogposts_settings_options_group', 'linkalt03'); 
    register_setting('hpblogposts_settings_options_group', 'linkid04'); 
    register_setting('hpblogposts_settings_options_group', 'linktext04'); 
    register_setting('hpblogposts_settings_options_group', 'linkalt04'); 
    register_setting('hpblogposts_settings_options_group', 'linkid05'); 
    register_setting('hpblogposts_settings_options_group', 'linktext05'); 
    register_setting('hpblogposts_settings_options_group', 'linkalt05'); 
    register_setting('hpblogposts_settings_options_group', 'linkid06'); 
    register_setting('hpblogposts_settings_options_group', 'linktext06'); 
    register_setting('hpblogposts_settings_options_group', 'linkalt06'); 
} 

Для каждой «группы» настройки register_settings называется 3 раза. Я пытался сделать это проще:

add_action('admin_init', 'hpblogposts_register_settings'); 
function csHpBlogPostsSimplyRegisterSettings($id) { 
    register_setting('hpblogposts_settings_options_group', 'linkid'+$id); 
    register_setting('hpblogposts_settings_options_group', 'linktext'+$id); 
    register_setting('hpblogposts_settings_options_group', 'linkalt'+$id); 
} 
function hpblogposts_register_settings() { 
    csHpBlogPostsSimplyRegisterSettings('01'); 
    csHpBlogPostsSimplyRegisterSettings('02'); 
    csHpBlogPostsSimplyRegisterSettings('03'); 
    csHpBlogPostsSimplyRegisterSettings('04'); 
    csHpBlogPostsSimplyRegisterSettings('05'); 
    csHpBlogPostsSimplyRegisterSettings('06'); 
} 

, но он не работает таким образом (значения не сохраняются).

Любая идея, где я совершил ошибку?

ответ

1

С одной стороны, когда вы конкатенации строк, вы должны use a dot, not a plus:

register_setting('hpblogposts_settings_options_group', 'linkalt' . $id); 
+0

Слишком много JavaScript в последнее время. Спасибо за хороший глаз :) –