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

Php 用户在Wordpress中保存选项菜单后,如何执行操作?,php,wordpress,plugins,menu,hook,Php,Wordpress,Plugins,Menu,Hook,我有一个Wordpress插件,其中我添加了一个菜单,允许用户设置各种选项。我使用了这里描述的添加菜单页面功能-。我现在需要在保存此页面上的选项后执行一些操作,但我不确定是否可以执行这些操作,或者如果可以,使用什么挂钩 我无法准确地发布创建此选项页所用的代码,但我会尝试将类似的内容组合在一起,以使消息得以传达 function my_menu_page() { add_menu_page('My Menu', 'My Menu', 'edit_posts', "my_menu_setti

我有一个Wordpress插件,其中我添加了一个菜单,允许用户设置各种选项。我使用了这里描述的添加菜单页面功能-。我现在需要在保存此页面上的选项后执行一些操作,但我不确定是否可以执行这些操作,或者如果可以,使用什么挂钩

我无法准确地发布创建此选项页所用的代码,但我会尝试将类似的内容组合在一起,以使消息得以传达

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');

保存页面后,您可以使用WordPress操作挂钩“save_post”添加操作。更多关于WordPress钩子的信息和示例请阅读

我想您正在寻找类似更新选项的东西

以下是同一钩子的几个变体: 更新选项也可用于保存/创建新选项

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

add_action('update_option_foo', 'my_menu_settings', 10, 2);
更新选项:在更新选项之前运行。例如:

add_action('update_option', 'my_menu_settings', 10, 3);
add_action('updated_option', 'my_menu_settings', 10, 3);
更新的_选项:在更新选项后运行。例如:

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

谢谢

如果有人想在保存前进行一些操作/清理,他可以使用pre\u update\u option\u foo hook


添加过滤器“pre\u update\u option\u foo”、“myplugin\u update\u field\u foo”,10,2;save_柱钩是否适合这种需要?我猜原来的问题更多的是与save settings page options.php有关,而不是在admin中保存普通帖子或自定义帖子类型。相反,我发现这个响应更适合于原始需求:使用admin_post hook。这些响应是在实际侧栏页面更新或ACF字段组更新时触发的吗?根据文档,在更新选项值之前立即触发,因此在更新任何选项值时,包括您提到的值。当选项页本身更新时,您可以随时尝试它。我试过了,但似乎没有着火。也许我把它命名错了,而不是foo所指的100%。“foo”是一个通用选项名,假设您创建了一个名为headerSize的选项名,在本例中,添加了“更新”操作“选项”headerSize、“我的菜单设置”,10,2;更新headerSize时,将启动“我的菜单设置”功能。您始终可以创建一个终止流的函数,并尝试查看该函数何时被触发。