选项页面不更新设置api中的多个记录

时间:2015-04-02 06:06:21

标签: wordpress-plugin wordpress

嗨,我是wordpress插件开发的新手。我有设置api的问题。如果可以,请帮忙。

以下是我的问题。

我面临的问题是最后一条记录,它是在数据库中更新的链接,但标题文本没有在数据库中更新。

所以请帮我找到解决方案。谢谢。

 function load_plugin() {

  add_settings_section('plugin_main', '<h1>Ticker Settings</h1>', 'plugin_section_text', 'plugin');
  add_settings_field('plugin_text_string', 'Title text', 'plugin_setting_string', 'plugin', 'plugin_main');
  add_settings_field('post_title_link', 'Link', 'plugin_link_setting', 'plugin', 'plugin_main');

  register_setting('plugin_options', 'plugin_options');
  register_setting('post_title_link', 'post_title_link');
}

function plugin_section_text() {
   echo '<p>Change your post ticker title and give link to.</p>';
}

function plugin_setting_string() {
  echo "<input id='plugin_text_string' name='plugin_options' size='40' 
type='text' value='" . get_option('plugin_options') . "' />";
}

function plugin_link_setting() {
echo "<input id='post_title_link' name='post_title_link' size='40'
      type='text' value='" . get_option('post_title_link') . "' />";
}

add_action('admin_init', 'load_plugin');
function post_ticker_setting() {
?>
<div class="wrap">
    <form action="options.php" method="post">
        <?php
        settings_fields('plugin_options');
        settings_fields('post_title_link');
        do_settings_sections('plugin');
        ?>
        <input name="Submit" type="submit" value="<?php esc_attr_e('Save Changes'); ?>" />
    </form>
</div>
<?php
}

1 个答案:

答案 0 :(得分:0)

您必须使用register_setting(https://codex.wordpress.org/Function_Reference/add_settings_field)注册所有设置。您显示的register_setting行与您的字段不对应。 在注册字段后,还应声明部分(https://codex.wordpress.org/Function_Reference/register_setting) 在您的代码中,以下行

        <?php
    settings_fields('plugin_options');
    settings_fields('post_title_link');
    do_settings_sections('plugin');
    ?>

不符合上述声明:

add_settings_section('plugin_main', ...
add_settings_field('plugin_text_string', ...
add_settings_field('post_title_link', ...

只有&#39; post_title_link&#39;具有相同的名称。这可能是唯一一次更新的原因。