Мне нужно создать фильтр с категориями WordPress таксономии и его сообщения, как эта картина
Выпадающие списки имен, эмитентов, Isin и Marketplace являются категориями. Как я могу разделить категории и создать простой фильтр с их сообщениями? Я искал больше, но не знал, как управлять и с чего начать. Попробовал плагин Красивые таксономические фильтры но это не то, что мне нужно с отдельными категориями.
Помогите мне пожалуйста с этим.
Я получаю выпадающие, как этот путь
function get_terms_dropdown($taxonomies, $args){
$myterms = get_terms($taxonomies, $args);
$output ="<select class='news_cat'>";
foreach($myterms as $term){
$root_url = get_bloginfo('url');
$term_taxonomy=$term->taxonomy;
$term_slug=$term->slug;
$term_name =$term->name;
$link = $root_url.'/?'.$term_taxonomy.'='.$term_slug;
$output .="<option value='".$link."'>".$term_name."</option>";
}
$output .="</select>";
return $output;
}
$taxonomies = array('articles-tax');
$args = array('orderby'=>'count','hide_empty'=>false);
echo get_terms_dropdown($taxonomies, $args);
и создал такую форму
<form role="search" method="get" id="searchform" action="<?php bloginfo('url'); ?>">and dropdowns here</form>
но все еще не могу получить и увидеть в URL-адресе все выбранные выпадающие значения, помогите мне, пожалуйста, исправить это, это мой первый шаг в мире фильтров!
Пройти весь срок name
или же slug
на URL на SEARCH
кнопка. Получите QUERY_STRING и найдите идентификатор термина с помощью get_term_by функция:
// Suppose you have term name in URL
// Then find Term ID with Name, or if you have slug in url then change "name" to "slug"$term = get_term_by( "name", $term_name, $taxonomy );
//$term->term_id;
Теперь вы должны использовать WP_Query чтобы получить доступ к сообщениям по определенным терминам:
$args = array(
'post_type' => 'YOUR_POST_TYPE',
'tax_query' => array(
array(
'taxonomy' => $taxonomy,
'field' => 'id',
'terms' => $term->term_id // You can pass more then one term id like array(32, 65)
)
)
);
$query = new WP_Query( $args );
Других решений пока нет …