要在WordPress中使用jQuery和自定义分类法来实现多关键词筛选查询,你可以按照以下步骤进行操作:
function custom_taxonomy() {
register_taxonomy(
'custom_category',
'post', // 这里可以是任何你想要将分类法应用于的内容类型
array(
'label' => '自定义分类',
'rewrite' => array('slug' => 'customcategory'),
'hierarchical' => true,
)
);
}
add_action('init', 'custom_taxonomy');
<form id="filterform">
<label for="customcategories">选择自定义分类:</label>
<select id="customcategories" name="customcategories[]" multiple>
<?php
$terms = get_terms('custom_category');
foreach ($terms as $term) {
echo '<option value="' . $term>slug . '">' . $term>name . '</option>';
}
?>
</select>
<input type="submit" value="筛选">
</form>
jQuery(document).ready(function($) {
$('#filterform').on('submit', function(e) {
e.preventDefault();
var selectedCategories = $('#customcategories').val();
$.ajax({
url: your_ajax_url, // 替换为你的WordPress AJAX处理函数的URL
type: 'POST',
data: {
action: 'filter_posts',
categories: selectedCategories
},
success: function(response) {
// 在这里处理筛选结果,可能是更新文章列表或其他操作
}
});
});
});
function filter_posts() {
$selectedCategories = $_POST['categories'];
$args = array(
'post_type' => 'post',
'tax_query' => array(
array(
'taxonomy' => 'custom_category',
'field' => 'slug',
'terms' => $selectedCategories,
'operator' => 'IN',
),
),
);
$query = new WP_Query($args);
if ($query>have_posts()) :
while ($query>have_posts()) : $query>the_post();
// 在这里输出文章的HTML或其他内容
endwhile;
else :
echo '没有匹配的文章';
endif;
wp_reset_postdata();
die();
}
add_action('wp_ajax_filter_posts', 'filter_posts');
add_action('wp_ajax_nopriv_filter_posts', 'filter_posts');
请确保将上述代码适当地添加到你的主题文件或自定义插件中,并替换其中的占位符和具体内容以适应你的网站需求。这样,用户就可以使用自定义分类法来进行多关键词筛选查询。