首页 > 解决方案 > WordPress 随机数

问题描述

嗨,我现在正在尝试进入 Wordpress Ajax 请求。现在我已经完成了一个完美运行的脚本。但由于我不是安全专业人士,我想问你是否可以帮助我。

我还想知道是否每次都必须使用表单,或者是否可以直接通过 jQuery Ajax 启动请求。如果是这样,我该如何处理以前无法设置随机数的动态请求?例如,在每个条目都有多个按钮的列表中?

非常感谢!

模板-form.php

<form method="post" id="form">
 <input type="text" name="form_name" />
 <?php wp_nonce_field( 'form_action', 'form_nonce' ); ?>
 <input type="submit" id="submit" value="save">
</form>

脚本.js

jQuery("#submit").click(function (e) {
e.preventDefault();
jQuery.post(ajaxurl + "/ajax.php", jQuery("#form").serialize()).done(function (data) {
  alert(data);
});
return false;
});

ajax.php

<?php
define( 'WP_USE_THEMES', false );
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' );

if( isset( $_POST['form_nonce'] ) && wp_verify_nonce( $_POST['form_nonce'], 'form_action') ) {
     $form_name = sanitize_text_field($_POST['form_name']);
     echo "is working";
    }else{
     echo "not working";
     wp_die();
    }
    ?>

标签: wordpresssecuritynonce

解决方案


我还想知道是否每次都必须使用表单,或者是否可以直接通过 jQuery Ajax 启动请求。如果是这样,我该如何处理以前无法设置随机数的动态请求?例如,在每个条目都有多个按钮的列表中?

不,您也可以使用 wp_nonce_url 进行 ajax 调用。但据我所知,如果您有一个多站点安装并将 ajax 调用从网络的一个博客发送到另一个博客,我将无法工作。

除此之外,您的代码对我来说看起来不错,而且您还说它正在工作。因此,我很困惑您到底在哪里需要帮助。你能澄清你的问题吗?


推荐阅读