2015-04-02 54 views
0

嗨,我是新的wordpress插件开发。我有设置API的问题。如果可以的话请帮忙。选项页没有更新设置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 
} 

回答

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', ... 

只有“post_title_link”具有相同的名称。这可能是为什么它是唯一一个更新。