如何解决在 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 举报,一经查实,本站将立刻删除。