问题是die()
. 你不能die()
在模板内部,否则将在该点停止整个站点的加载。如果你仔细看,你会发现不只是JS文件夹没有加载,而是整个页脚。
您需要将代码分为两个函数。一个输出要输出的HTML的函数,另一个函数运行第一个函数,然后终止。
因此,有第一个功能:
function misha_filter_function() {
// Query posts, output loop, etc. etc.
}
然后是第二个函数,仅针对AJAX,它调用第一个函数
die()
:
function misha_filter_function_ajax() {
misha_filter_function();
die();
}
然后为AJAX挂接第二个函数:
add_action( \'wp_ajax_myfilter\', \'misha_filter_function_ajax\' );
add_action( \'wp_ajax_nopriv_myfilter\', \'misha_filter_function_ajax\' );
第一个函数也可以只是一个模板。然后在AJAX函数和模板中,您可以使用
get_template_part()
:
function misha_filter_function_ajax() {
get_template_part( \'partials/filter\' ); // theme-directory/partials/filter.php
die();
}
此外,您应该使用
GET
和
$_GET
对于此用例。
POST
应用于将数据发送到要处理的服务器,通常涉及更新或创建资源。
GET
应用于检索(
获取)数据。您只是在检索HTML,因此应该使用GET
方法