web-dev-qa-db-ja.com

プラグインオプションはデータベースに保存されません

これは私が作成した別のプラグインで機能しているので、私はここで何が起こっているのかわからない。単にオプションテーブルにデータを保存しようとしています。これが私が使っているコードです:

function on_myplugin_start () {         
register_setting('first_tab_options', 'first_tab_items');
}

add_action('admin_init','on_myplugin_start');

これが送信されるフォームです:

<form action="options.php" method="post" >
<?php
 settings_fields( 'first_tab_options' );
 ?>
<input type="text" name="some_name" value="">
<input type="submit" value="Save Settings" name="submit" class="button-primary">
</form>

それはそれです。私がソースコードを見ると、すべてがうまく見えます...設定APIによって置かれた隠されたフィールドがすべてあります。しかし値を入れて送信を押すと(そしてうまく保存されました。正常に作成されたデータベースフィールド(first_tab_items)にあります。

私はこれについての助けをいただければ幸いです....ありがとう

4
Allen

入力(POST)名はregister_setting呼び出しのものと一致する必要があるためです。

register_setting( 'first_tab_options', 'first_tab_items' );
....
<input type="text" name="first_tab_items"...

それ以外の場合、WP内のsome_nameがオプションデータを保持していることをPOSTがどのように認識しているのでしょうか。 ;)

9
TheDeadMedic

TheDeadMedicの答えに追加する:あなたが暗示しているようにあなたがフォーム全体に対してただ一つの設定を登録したいのなら、あなたは配列を使うことができます:

<form action="options.php" method="post" >
<?php
    settings_fields( 'first_tab_options' );
?>
<input type="text" name="first_tab_items[some_name]" value="">
<input type="text" name="first_tab_items[some_name2]" value="">
<input type="submit" value="Save Settings" name="submit" class="button-primary">
</form>

そして登録:

register_setting('first_tab_options', 'first_tab_items');
0
Ynhockey