用户在Wordpress中保存选项菜单后如何执行操作?

时间:2014-07-10 20:45:24

标签: php wordpress plugins menu hook

我有一个Wordpress插件,其中添加了一个允许用户设置各种选项的菜单。我使用了这里描述的“add_menu_page”函数 - http://codex.wordpress.org/Function_Reference/add_menu_page。我现在需要在保存此页面上的选项后执行一些操作,但我不确定我是否可以这样做,或者,如果可以的话,我可以使用什么钩子。

我无法准确发布我正在使用的代码来创建此选项页面,但我会尝试将类似的内容放在一起以获取消息

function my_menu_page() {
    add_menu_page('My Menu', 'My Menu', 'edit_posts', "my_menu_settings", "my_menu_settings");
}

function my_menu_settings() {
    echo "          
        <h1>My Menu Settings</h1>
        <div>
            <form action='options.php' method='post' name='options'>
            " . wp_nonce_field('update-options') . "
                <input type='text' name='my_option_1' value='" . get_option('my_option_1') . "' /><br />
                <input type='hidden' name='action' value='update' />
                <input type='hidden' name='page_options' value='my_option_1' />     
                <input type='submit' name='Submit' value='Update' />
            </form>
        </div>
    ";
}

add_action('admin_menu', 'my_menu_settings');

3 个答案:

答案 0 :(得分:0)

我认为您正在寻找类似 update_option here is the link to the Wordpress documentation

以下是同一钩子的一些变体: (update_option也可以用于保存/创建新选项)

update_option_ {option_name} :在名称为“ option_name”的选项更新后运行。例如,对于名称为“ foo”的选项:

add_action('update_option_foo', 'my_menu_settings', 10, 2);

update_option :在更新选项之前运行。示例:

add_action('update_option', 'my_menu_settings', 10, 3);

updated_option :在选项更新后运行。示例:

add_action('updated_option', 'my_menu_settings', 10, 3);

谢谢

答案 1 :(得分:0)

如果有人要在保存之前进行一些操作/清理,他可以使用 pre_update_option_foo 钩子

add_filter( 'pre_update_option_foo', 'myplugin_update_field_foo', 10, 2 );

在Codex中查看详细信息/示例:https://developer.wordpress.org/reference/functions/update_option/

答案 2 :(得分:-3)

您可以使用WordPress操作挂钩&#39; save_post&#39;在页面保存后添加操作。有关此WordPress挂钩的更多信息和示例,请阅读http://codex.wordpress.org/Plugin_API/Action_Reference/save_post