我一辈子都无法将任何脚本放入我的functions.php文件中,也无法本地化admin-ajax.php网址。我一直在其传统位置包含任何css和js(标题和js紧接在body标签末尾之前的css),到目前为止,它对我来说一直有效,但是很明显,发出ajax请求的js文件需要在此文件中注册。
基本上,我试图在AJAX请求中重新查询数据库,以查找仅与客户网站的博客页面上的特定类别有关的帖子,并显示结果而无需刷新。
截至目前,我只是想让一个虚拟函数处理请求并返回类别
functions.php文件中的相关代码
<?php
function register_styles_and_scripts() {
// BOOTSTRAP CSS
wp_enqueue_style( 'bootstrap', get_template_directory_uri() . '/css/bootstrap.min.css' );
// MAIN CSS
wp_enqueue_style( 'styles', get_template_directory_uri() . '/css/style.css' );
// JQUERY
wp_register_script('jquery', get_template_directory_uri() . '/js/jQuery.min.js', array(),'1.11.1', true);
wp_enqueue_script('jquery');
// BOOTSTRAP JS
wp_register_script('bootstrap', get_template_directory_uri() . '/js/bootstrap.min.js', array('jquery'), '3.3.1', true);
wp_enqueue_script('bootstrap');
// MAIN JS
wp_register_script('main', get_template_directory_uri() . '/js/main.js', array('jquery'), 'false', true);
wp_enqueue_script('main', get_template_directory_uri() . '/js/main.js', array('jquery'), 'false', true);
wp_enqueue_script('main');
$localize = array(
'ajaxurl' => admin_url('admin-ajax.php'),
'auth' => wp_create_nonce('_check__ajax_100')
);
wp_localize_script( 'main', 'ajax_params', $localize);
}
add_action('wp_enqueue_scripts', 'register_styles_and_scripts');
add_action('admin_enqueue_scripts', 'register_styles_and_scripts');
// === AJAX === //
function test_ajax_function() {
check_ajax_referer( '_check__ajax_100', 'nonce_field' );
$cat = $_POST[ "cat" ];
echo $cat;
wp_die();
}
add_action( 'wp_ajax_test_ajax_function', 'test_ajax_function' );
add_action( 'wp_ajax_nopriv_ test_ajax_function', 'test_ajax_function' );
?>
我遵循了许多教程,并认为我可以正确设置本地化,但是当我打电话时,ajaxurl是不确定的。
我的AJAX请求
$('.cat-item a').on("click", function(e) {
e.preventDefault();
var postRow = $('#postRow'),
selectedCategory = $(this).text().trim(),
ajaxurl = "<?php echo admin_url('admin-ajax.php') ?>";
console.log("ajax URL: ", ajaxurl);
postRow.animate({
opacity: "0.5"
});
$.ajax({
method: "POST",
url: ajax_params.ajax_url,
type: "post",
dataType: "html",
data: {
"action": "test_ajax_function",
"cat": selectedCategory,
"security": "<?php echo wp_create_nonce('filter_posts')"
},
success: function(result) {
console.log(result);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log("headers", jqXHR);
console.log("textstatus: ", textStatus);
console.log("error thrown: ", errorThrown);
console.log("response text: ", jqXHR.responseText);
}
})
});
我想念什么?