在 Settings API 中使用 nonce - WordPress 插件开发

问题描述

我是插件开发的新手,我一直在使用随机数。我正在创建我的第一个插件,但我不知道如何在我的表单中实现和验证 nonce。

我找到了一些教程,并且查看了官方文档,但仍然有问题。

这是我的管理部分的简短课程:

if ( ! class_exists( 'Dashboard' ) ) {

    class Dashboard {
        public function __construct() {
            add_action('admin_menu',array($this,'agy_dashboard'));
            add_action('admin_init','agy_register_settings'));
        }

        public function agy_dashboard() {
            add_submenu_page(
                'tools.php',__( 'Agy','agy' ),'manage_options','agy-dashboard',array( $this,'agy_dashboard_page' )
            );
        }

        public function agy_dashboard_page() {
            ?>
            <div id="agy-wrap" class="wrap">
                <form action="options.php" method="post">
                    <?php

                    do_settings_sections( 'agy_settings_section_tab1' );

                    submit_button(
                        __( 'Save Changes','','agy_save_changes_btn',true,array( 'id' => 'agy-save-changes-btn' )
                    );
                    ?>

                </form>
            </div>
            <?php
        }

        public function agy_register_settings() {
            register_setting(
                'agy_settings_fields','agy_settings_fields','agy_sanitize_callback'
            );

            // Adding sections
            add_settings_section(
                'agy_section_id',__( 'General','agy_settings_section_callback' ),'agy_settings_section_tab1'
            );

            add_settings_field(
                'agy_section_id_enabled_disabled',__( 'Enable / Disable','agy_section_id_enabled_disabled' ),'agy_settings_section_tab1','agy_section_id'
            );
        }

        public function agy_settings_section_tab3_callback() {
            _e( 'Donec sollicitudin molestie malesuada. Quisque velit nisi,pretium ut lacinia in,elementum id enim.','agy' );
        }

        public function agy_section_id_enabled_disabled() {
            echo '<label class="agy-switch" for="agy-enabled-disabled"><input type="checkbox" id="agy-enabled-disabled"
            class="agy-switch-input" name="agy_settings_fields[enabled_disabled]"
            value="1" ' . $this->option_check_radio_btn( 'enabled_disabled' ) . '>
            <span class="agy-slider agy-round"></span></label>';
        }
    }
    new Dashboard();
}

我尝试在 wp_nonce_field('agy_dashboard_save') 内和我尝试使用的表单外设置 <form>

if (isset($_POST['agy_save_changes_btn'])) {
    check_admin_referer( 'agy_dashboard_save' );
}

但我不确定这是否是实现和验证 nonce 的正确方法。

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...