web-dev-qa-db-ja.com

Wordpressのオプションを配列として保存する方法

フォームを使用してオプションを配列として保存する方法Settings APIを使いたくありません。

これは3つのオプションを別々に保存する作業フォームです。

<form method="post" enctype="multipart/form-data" action="options.php">
   <?php wp_nonce_field('update-options'); ?>

   <input type="text" name="option1" value="<?php echo get_option('option1');  ?>" />
   <input type="text" name="option2" value="<?php echo get_option('option2'); ?>" />
   <input type="text" name="option3" value="<?php echo get_option('option3'); ?>" />

<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="option1,option2,option3" />
<p class="submit"><input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" /></p>
</form>

そしてこれが配列を探す方法ですが、このメソッドはうまくいきません(問題はpage_optionsという入力にあると思います:

<form method="post" enctype="multipart/form-data" action="options.php">
   <?php wp_nonce_field('update-options'); ?>
   <?php $options = get_option('my_options'); ?>

   <input type="text" name="option1" value="<?php echo $options['option1']; ?>" />
   <input type="text" name="option2" value="<?php echo $options['option2']; ?>" />
   <input type="text" name="option3" value="<?php echo $options['option3']; ?>" />

<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="my_options" />
<p class="submit"><input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" /></p>
</form>

何か案は?

1
Wordpressor

やってみました...

 <input type="text" name="my_options[option1]" value="<?php echo $options['option1']; ?>" />
 <input type="text" name="my_options[option2]" value="<?php echo $options['option2']; ?>" />
 <input type="text" name="my_options[option3]" value="<?php echo $options['option3']; ?>" />?

私はあなたの設定を登録し、入力に対して必要なバリデーションチェックを実行するべきです - あるいはSettings APIを本当に使いたくないのであれば、それを完全に無視して手動でフォームを集めるべきですデータ、データのチェック、ナンスのチェックなどを行い、データベースに追加します。

5
Stephen Harris