Nonce and widget

时间:2015-08-24 作者:Guest

我已经筛选了几个小部件的代码,但没有发现其中任何一个处理nonce。我还查看了WP\\u Widget类,但也没有发现任何相关内容。

这是抄本:(https://codex.wordpress.org/Widgets_API)

class Foo_Widget extends WP_Widget {
    function __construct() {
        //something
    }

    public function widget( $args, $instance ) {
        //something
    }

    public function form( $instance ) {
        $title = ! empty( $instance[\'title\'] ) ? $instance[\'title\'] : __( \'New title\', \'text_domain\' );
        ?>
        <p>
        <label for="<?php echo $this->get_field_id( \'title\' ); ?>"><?php _e( \'Title:\' ); ?></label> 
        <input class="widefat" id="<?php echo $this->get_field_id( \'title\' ); ?>" name="<?php echo $this->get_field_name( \'title\' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>">
        </p>
        <?php 

        /****************************************
        * why no nonce field created here?
        ****************************************/
    }

    public function update( $new_instance, $old_instance ) {
        //something
    }
}
我希望必须在form函数中创建nonce。无论我看到哪里,都没有人在表单函数中处理nonce,在表单函数中提交数据。我想知道为什么?

1 个回复
SO网友:emilushi

你必须更加清楚你的问题。最好是发布您的代码,任何人都可以检查它并提供帮助。

我之前用nonce创建了一个联系人表单,并在表单中添加了:<input type="hidden" name="nonce" value="<?php echo wp_create_nonce(\'send_email_nonce\'); ?>"/>

在我添加的表单处理程序上:

$formNonce = $_POST[\'nonce\'];

if (!wp_verify_nonce($formNonce, \'send_email_nonce\')) {
  echo json_encode(array(
    \'success\' => false,
    \'message\' => __(\'Nonce was not verified!\', \'shomtek\')
  ));
  die;
}
但这取决于小部件和表单的用途。我建议你更具体一些,把你的代码贴出来。

结束

相关推荐

Dynamic Width of Widgets

好的,我在一个侧边栏中为最多6个小部件使用以下代码function s57d_sidebar1_params($params) { $sidebar_id = $params[0][\'id\']; if ( $sidebar_id == \'sidebar-1\' ) { $total_widgets = wp_get_sidebars_widgets(); $sidebar_widgets = count($total_wi