您不需要将用户、表单或AJAX请求直接发送到插件文件URL。
If you\'re submitting a form, 根本不需要新的URL,只需:
if ( !empty( $_POST[\'formfield\'] ) {
// handle form submission and print thank you
} else {
// display form
}
或者像大多数人一样,使用重力表单或contact7之类的插件
If you\'re doing an AJAX call, 使用提供的API进行AJAX调用
PHP:
function example_ajax_request() {
if ( isset($_REQUEST) ) {
$fruit = $_REQUEST[\'fruit\'];
if ( $fruit == \'Banana\' ) {
$fruit = \'Apple\';
}
echo $fruit;
}
// Always die in functions echoing ajax content
die();
}
add_action( \'wp_ajax_example_ajax_request\', \'example_ajax_request\' );
add_action( \'wp_ajax_nopriv_example_ajax_request\', \'example_ajax_request\' );
Javascript
jQuery(document).ready(function($) {
// We\'ll pass this variable to the PHP function example_ajax_request
var fruit = \'Banana\';
// This does the ajax request
$.ajax({
url: ajaxurl,
data: {
\'action\':\'example_ajax_request\',
\'fruit\' : fruit
},
success:function(data) {
// This outputs the result of the ajax request
console.log(data);
},
error: function(errorThrown){
console.log(errorThrown);
}
});
});
WP AJAX注释
Smashing Magazine How to use AJAX in WordPressA simple AJAX example如果文件是按照您的要求加载的,您唯一应该测试的时间是,您可以立即退出脚本以避免安全问题。
E、 g。
if ( !defined( \'WPINC\' ) ) {
die();
}
更快的AJAX调用在超高流量站点上执行操作时,标准的AJAX调用程序有时会表现不佳,在这种情况下,我遵从RARST的回答:
Ajax takes 10x as long as it should/could
但即使在这种情况下,我也不会让一个文件同时处理AJAX和非AJAX,这很难区分关注点。如果您的AJAX处理程序没有使用WP AJAX API,那么它应该是一个单独的专用文件。