嗨,我是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
}
答案 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;具有相同的名称。这可能是唯一一次更新的原因。