在Ajax中使用产品过滤器可以通过以下步骤在WordPress中实现:
function filter_products_ajax() {
// 获取过滤器参数
$filter = $_POST['filter'];
// 根据过滤器参数查询产品
$args = array(
'post_type' => 'product',
'tax_query' => array(
array(
'taxonomy' => 'product_category',
'field' => 'slug',
'terms' => $filter,
),
),
);
$products = new WP_Query($args);
// 构建产品HTML
$html = '';
if ($products->have_posts()) {
while ($products->have_posts()) {
$products->the_post();
$html .= '';
$html .= '' . get_the_title() . '
';
$html .= '' . get_the_content() . '
';
$html .= '';
}
} else {
$html = '没有找到符合条件的产品。';
}
// 返回产品HTML
echo $html;
// 终止脚本
wp_die();
}
add_action('wp_ajax_filter_products', 'filter_products_ajax');
add_action('wp_ajax_nopriv_filter_products', 'filter_products_ajax');
请注意,“product_category”是您用于产品分类的分类法名称。如果您使用的是不同的分类法,请相应地修改代码中的“taxonomy”和“terms”参数。
另外,确保您的主题已经正确加载了jQuery库。如果没有加载,您可以在主题中的functions.php文件中添加以下代码来加载它:
function load_jquery() {
wp_enqueue_script('jquery');
}
add_action('wp_enqueue_scripts', 'load_jquery');
这样,当用户选择过滤器时,Ajax请求将通过WordPress处理,并使用过滤器参数过滤产品,并将结果返回到前端页面进行显示。