ref21 Asked:2020-04-07 02:21:06 +0000 UTC2020-04-07 02:21:06 +0000 UTC 2020-04-07 02:21:06 +0000 UTC 如何通过前端添加 WordPress 帖子的表单?[关闭] 772 我知道您需要创建一个 html 表单,然后 ajax 将数据(帖子标题和文本)传递到后面。但是接下来呢?也许有实现此类功能的良好实践? php 1 个回答 Voted Best Answer user243545 2020-04-07T14:27:42Z2020-04-07T14:27:42Z 连接脚本: add_action( 'wp_enqueue_scripts', 'my_enqueue_scripts' ); function my_enqueue_scripts() { wp_enqueue_script( 'my-script', plugin_dir_url( __FILE__ ) . 'assets/js/main.js', [ 'jquery' ], '1.0.0', true ); wp_localize_script( 'my-script', 'my_ajax', [ 'url' => admin_url( 'admin-ajax.php' ), 'nonce' => wp_create_nonce( 'my-nonce' ), ] ); } AJAX提交的js文件: jQuery(document).ready(function ($) { $.ajax({ url: my_ajax.url, type: 'POST', data: { 'nonce': my_ajax.nonce, 'action': 'my_ajax_action', }, success: function (data) { alert(data); // 'some-data' } }); }); 我们连接我们的 php 文件的回调: add_action( 'wp_ajax_my_ajax_action', 'my_ajax_callback' ); add_action( 'wp_ajax_nopriv_my_ajax_action', 'my_ajax_callback' ); public function my_ajax_callback() { check_ajax_referer( 'my-nonce', 'nonce' ); ... $request = 'some-data'; wp_send_json( $request ); } 因此,良好的做法: 添加wp_localize_script所需的数据。一定要链接到 admin-ajax.php 和 nonce; 我们$.ajax使用来自 wp_localize_script (my_ajax.url, my_ajax.nonce, ...) 的数据; 一定要检查随机数。Ajax 对此有自己的功能check_ajax_referer; 如果您需要发送响应,请使用wp_send_json 文档中的更多详细信息:https ://wp-kama.ru/id_2018/ajax-v-wordpress.html
连接脚本:
AJAX提交的js文件:
我们连接我们的 php 文件的回调:
因此,良好的做法:
wp_localize_script所需的数据。一定要链接到 admin-ajax.php 和 nonce;$.ajax使用来自 wp_localize_script (my_ajax.url, my_ajax.nonce, ...) 的数据;check_ajax_referer;wp_send_json文档中的更多详细信息:https ://wp-kama.ru/id_2018/ajax-v-wordpress.html