2017-07-10 2 views
0

Je simple code, ce code utilisé pour thème OptionEnregistrer Option sélectionnée sur le thème Option Wordpress

<?php function options_page() { 
    if ($_POST['update_options'] == 'true') { 
     update_option('color', $_POST['color']); 
    } 
    ?> 

    <div class="wrap"> 
     <div id="icon-options-general" class="icon32"><br /></div> 
     <h2><?php _e('Setting Theme', 'academi'); ?></h2> 

     <form method="post" action=""> 
      <input type="hidden" name="update_options" value="true" /> 

      <table class="form-table"> 
       <tr valign="top"> 
        <td class="tdleft"><label for="color"><?php echo get_option('color'); ?> <?php _e('Color Style: ', 'academi'); ?></label></td> 
        <td> 
         <select name="warna" id="warna"> 
          <option value="">Change Fav Color</option> 
          <option value="aka-red" <?php echo (get_option('color'))? 'selected="selected"' : ''; ?>>Academi Red</option> 
          <option value="aka-green" <?php echo (get_option('color'))? 'selected="selected"' : ''; ?>>Academi Green</option> 
          <option value="aka-purple" <?php echo (get_option('color'))? 'selected="selected"' : ''; ?>>Academi Purple</option> 
         </select> 
        </td> 
       </tr> 
      </table> 

      <input class="submit" type="submit" value="Save Change" /> 
     </form> 
    </div> 
<?php } ?> 

succès de l'option de données pour enregistrer dans la base de données, mais toujours l'option sélectionnée sur Academi Violet. Exemple Je choisis "Academi Red" dans l'option select et Save; ces données sont sauvegardées dans la base de données avec succès mais l'option sélectionnée n'est pas sur Academi Red mais sur Academi Purple.

Répondre

1

Votre code est assez difficile à lire.

<?php echo (get_option('color'))? 'selected="selected"' : ''; ?>>Academi Purple</option> 

Ceci est votre instruction conditionnelle. Ce qui est dit est IF get_option ('couleur'), ​​ALORS set selected = "selected".

Dès que votre option 'couleur' ​​a été définie, cette instruction retournera TOUJOURS vrai. Donc toutes vos options seront "sélectionnées", et la dernière "gagnera".

Vous devez modifier cette instruction.

echo ((get_option('color') === 'aka-purple') ? 'selected="selected"' : '');