WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've created a really simple theme settings page to just enable my user to add some social media links. However when I input some data and save the fields the text vanish's and doesn't seem to save.

    // create custom theme settings menu
    add_action('admin_menu', 'getextra_settings_create_menu');

    function getextra_settings_create_menu() {

      //create new top-level menu
      add_menu_page('Theme Settings', 'Theme Options', 'administrator', __FILE__, 'ge_settings_callback_page');

      //call register settings function
      add_action( 'admin_init', 'register_mysettings' );

    function register_mysettings() {
      //register our settings
      register_setting( 'theme-settings-group', 'theme_options' );

    function ge_settings_callback_page() {
    <div class="wrap">
    <h2>Foxyrentals Theme Settings</h2>

    <form method="post" action="options.php">
        <?php settings_fields( 'theme-settings-group' ); ?>
        <?php do_settings_sections( 'theme-settings-group' ); ?>
        <table class="form-table">
            <tr valign="top">
            <th scope="row">Facebook</th>
            <td><input type="text" name="facebook" value="<?php echo get_option('facebook'); ?>" /></td>
             <tr valign="top">
            <th scope="row">Twitter</th>
            <td><input type="text" name="twitter" value="<?php echo get_option('twitter'); ?>" /></td>
            <tr valign="top">
            <th scope="row">Pinterest</th>
            <td><input type="text" name="pinterest" value="<?php echo get_option('pinterest'); ?>" /></td>
            <tr valign="top">
            <th scope="row">Google+</th>
            <td><input type="text" name="googleplus" value="<?php echo get_option('googleplus'); ?>" /></td>
            <tr valign="top">
            <th scope="row">Linkedin</th>
            <td><input type="text" name="linkedin" value="<?php echo get_option('linkedin'); ?>" /></td>
            <tr valign="top">
            <th scope="row">Foursquare</th>
            <td><input type="text" name="foursquare" value="<?php echo get_option('foursquare'); ?>" /></td>


        <?php submit_button(); ?>


    <?php } ?>

from this I've created a function that displays these options in the footer using the following;


function social_icons() {
    $facebook = get_option('facebook');
    $twitter = get_option('twitter');
    $googleplus = get_option('googleplus');
    $linkedin = get_option('linkedin');
    $foursquare = get_option('foursquare');
    $pinterest = get_option('pinterest');
        <a href="<?php echo $facebook; ?>"<img src="<?php bloginfo('template_url'); ?>/images/icon_fb.png" alt="facebook" /></a>
        <a href="<?php echo $twitter; ?>"><img src="<?php bloginfo('template_url'); ?>/images/icon_tw.png" alt="twitter" /></a>
        <a href="<?php echo $googleplus; ?>"><img src="<?php bloginfo('template_url'); ?>/images/google-icon.png" alt="googleplus" /></a>
        <a href="<?php echo $linkedin; ?>"><img src="<?php bloginfo('template_url'); ?>/images/pinterest-icon.png" alt="pinterest" /></a>
        <a href="<?php echo $pinterest; ?>"><img src="<?php bloginfo('template_url'); ?>/images/linkedin-icon.png" alt="linkedin" /></a>
        <a href="<?php echo $foursqaure; ?>"><img src="<?php bloginfo('template_url'); ?>/images/foursquare-2-icon.png" alt="foursqaure" /></a>

 <?php } ?>
share|improve this question
up vote 0 down vote accepted

Your register_setting() should be for all fields like below

function register_mysettings() {
  //register our settings
   register_setting( 'theme-settings-group', 'facebook' );
   register_setting( 'theme-settings-group', 'twitter' );
   register_setting( 'theme-settings-group', 'pinterest' );
   register_setting( 'theme-settings-group', 'googleplus' );


Do this for all fields and let me know if you stuck at anything

share|improve this answer
thanks I overlooked this issue – dannyw24 Feb 14 '14 at 12:54

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.