在选项页面上点击一个按钮后,这是在我的插件中执行一些PHP的正确方式吗?

时间:2012-02-15 作者:rg89

我有一个插件的选项页面。我希望用户能够单击按钮来执行插件类的成员函数。我找到此页面:

https://stackoverflow.com/questions/8597846/wordpress-plugin-call-function-on-button-click-in-admin-panel

但我不确定我是否正确地解释了说明。我发现用action=“options general.php?page=MY\\u options\\u page\\u SLUG”创建一个表单是可行的。像这样:

            <form method="post" action="options-general.php?page=my_options_page_slug">
                <input type="hidden" name="banana" value="yellow">
                <input type="submit" class="button-primary" value="<?php _e(\'Go\') ?>" />
            </form>
这是stackoverflow文章的建议吗?这是一种体面的方式吗?我还没有准备好进入(WP)AJAX。我可以使用表单和页面刷新。

感谢阅读。

2 个回复
SO网友:Rutwick Gangurde

尝试使用\'init\' 处理提交触发器的操作挂钩。在挂钩函数中创建类的新对象并调用成员函数。

SO网友:Jared

是的,这种方法应该很好。添加nonce也是一件积极的事情。

From the WP Codex page: Nonces用作与安全相关的保护,以防止攻击和错误(听起来不错!)

您也可以使用$pagenow$typenow 变量,以代替将URL硬编码到表单的action属性中。

有更好的方法(比如AJAX),但我认为这是“传统”的方法。

结束

相关推荐

无法在wp-admin的自定义构建元数据中保存自定义分类术语

我创建了两个自定义分类法,即州和省,但无法将数据保存在wp admin的自定义构建元框中:<?php function custom_meta_box() { remove_meta_box( \'tagsdiv-states\', \'post\', \'side\' ); remove_meta_box( \'tagsdiv-provinces\', \'post\', \'side\' ); add_meta_box( \'t