Adding Form Fields with Settings API

You’re using same callback function for both setting fields. Use different ones with it’s own inputs. Here’s updated code: <?php /* Plugin Name: Settings API Demo Description: Learning Setting Field and Settings Section Author: Teno */ add_action(‘admin_init’, ‘settingsapi_init’); function settingsapi_init(){ register_setting( ‘settingsapi_optiongroupname’, ‘settingsapi_optionname’); add_settings_section(‘plugin_main’, ‘Section 1’, ‘settingsapi_sectiondescription’, ‘settingsapi_pageslug’); add_settings_field(‘plugin_text_string_a’, ‘Option A’, ‘settingsapi_setting_string_a’, ‘settingsapi_pageslug’, ‘plugin_main’); add_settings_field(‘plugin_text_string_b’, … Read more

options validator input is false?

This kind of setup skeleton works for me to process the custom options page input : <?php /* Plugin Name: Settings Skeleton */ if(!class_exists(‘MySettings’)){ function call_my_settings() { return new MySettings(); } if (is_admin()){ add_action( ‘init’, ‘call_my_settings’ ); } class MySettings{ public function __construct(){ add_action(‘admin_menu’, array(&$this, ‘add_menu’)); add_action(‘admin_init’, array(&$this,’settings’) ); } public function add_menu(){ add_options_page(__(‘My Plugin … Read more

Incorporating the Settings API in WordPress Themes – by Chip Bennet

You should include your options-register-defaults.php to make the callback available. function chr_settings() { require_once ‘options-register-defaults.php’; // add path to file /* register_setting( $option_group, $option_name, $sanitize_callback )- Associates an option group passed to settings_fields with database entry */ register_setting( ‘mycustom_options’, ‘mycustom_options’, ‘ch_options_validate’ ); add_settings_section(‘ch_settings_defaults_style’, ‘Style Options’, ‘ch_settings_defaults_style_section_text’, ‘mycustom’); }

Settings api sanatize callback not being triggered

It’s because you have typos in your code : in the function called header_logo_validate() it should be : return $new_input; EDIT: add_action( ‘admin_menu’, ‘ec1_admin’, 10, 0 ); args are useless just write add_action( ‘admin_menu’, ‘ec1_admin’); EDIT 2 : This is not a correct way to add several fields. You should put this into arrays or … Read more