Php 使用分类法复选框过滤搜索结果页面(wordpress)

Php 使用分类法复选框过滤搜索结果页面(wordpress),php,wordpress,Php,Wordpress,我的网站有问题 下面的代码显示包含用户编写的国家分类法术语的帖子ID 例如,如果我搜索“法国”,或者如果我写http://www.mywebsite.com/pagesearch/?country=france,将显示包含术语france的ids 430、522和650 我想要的是,当显示结果时,结果页面上会出现一些复选框下拉列表,以便能够再次筛选结果。我有分类法城市和活动。 我希望,如果用户检查城市分类法中的“巴黎”和“马赛”以及活动分类法中的“餐馆”,它会显示过滤结果,并在这些术语上加上OR

我的网站有问题

下面的代码显示包含用户编写的
国家
分类法术语的帖子ID

例如,如果我搜索“法国”,或者如果我写
http://www.mywebsite.com/pagesearch/?country=france
,将显示包含术语
france
的ids 430、522和650

我想要的是,当显示结果时,结果页面上会出现一些复选框下拉列表,以便能够再次筛选结果。我有分类法
城市
活动
。 我希望,如果用户检查城市分类法中的“巴黎”和“马赛”以及活动分类法中的“餐馆”,它会显示过滤结果,并在这些术语上加上OR条件

目前我有以下代码:($output是包含城市术语的下拉列表)。 我不知道如何获取选中的复选框并使用这些术语再次过滤结果。 我试着用

非常感谢你的帮助

海军陆战队

if ((isset($_GET['country'])) && (!empty($_GET['country']))){
    $country = sanitize_text_field($_GET['country']);      
    $search_posts_id = array();

        $search_args = array(
            'fields' => array('ids', 'post_type'),
            'post_type' => 'my_custom_posttype',
            'tax_query' => array(
            array (
            'taxonomy' => 'country',
            'field' => 'slug',
            'terms' => $country,
            ),
     ),
        );
    $search_query = new WP_Query($search_args);

    if ( $search_query->have_posts() ) :
            $search_posts_id = array_unique(wp_list_pluck( $search_query->posts, 'ID' ));
            $termobjs = wp_get_object_terms( $search_posts_id, 'city', array('orderby' => 'name', 'order' => 'ASC', 'fields' => 'all'));


            $output ='<dl class="dropdownfilter"><dt><a href="#"><span class="hida">Marque</span><p class="multiSel"></p></a></dt><dd><div class="mutliSelect"><ul>';

            foreach($termobjs as $term){
                $output .= '<li><input type="checkbox" id="'.$term->slug.'" name="'.$term->taxonomy.'" value="'.$term->slug.'"> '.$term->name.'</li>';
            }
            $output .='</ul></div></dd><button class="buttonfilter">Filtrer</button></dl>';


    endif;
    wp_reset_postdata(); 

    echo $output;
    echo $search_posts_id;
}
if((isset($\u GET['country'])和(!empty($\u GET['country'])){
$country=sanitize_text_字段($_GET['country']);
$search_posts_id=array();
$search\u args=数组(
'fields'=>array('ids','post_type'),
'post_type'=>'my_custom_posttype',
“tax_query”=>数组(
排列(
“分类法”=>“国家”,
'字段'=>'段塞',
“条款”=>$country,
),
),
);
$search\u query=新的WP\u查询($search\u args);
如果($search\u query->have\u posts()):
$search\u posts\u id=array\u unique(wp\u list\u pull($search\u query->posts,'id');
$termobjs=wp\u get\u object\u terms($search\u posts\u id,'city',array('orderby'=>'name','order'=>'ASC','fields'=>'all');
$output='
    '; foreach($termobjs作为$term){ $output.='
  • '.$term->name.
  • '; } $output.='
filter'; endif; wp_reset_postdata(); echo$输出; echo$search\u posts\u id; }
当您使用该代码时会发生什么?谢谢您的回答。当我使用这段代码时,例如,如果我编写代码,结果页面上会显示包含分类术语“france”的结果,并且会出现一个包含所有法国城市复选框的下拉列表。我现在想要的是得到选中的城市,并重新过滤搜索结果,仍然使用术语“法国”,但也使用城市分类法中选中的术语“巴黎”和“马赛”。好吧,这需要很多步骤和大量编码工作。所以如果我是你,我会把这个过程分解成不同的小块,然后一次处理每一块。然后,当你完成一个步骤后,为下一步发布另一个问题。然后,您可以给出与该步骤相关的具体细节,展示您拥有的代码,并解释正在发生的事情与您期望发生的事情相比。否则,要有人为您编写所有这些代码就太麻烦了。