Intereting Posts
Связанный запрос показывает то же изображение в цикле Пытаясь использовать WP_Query для отображения пользовательского типа сообщения Правильный способ использования формы для фильтрации пользовательских сообщений по таксономическим терминам? wp_page_menu не работает? Перенаправление пользователя на страницу входа в систему Попытка сохранить элементы подменю для вывода после основного меню Тип тагирования страницы Подгонка изображения к размеру холста эскиза WordPress Query orderby title с строкой UTF8 в заголовке Как добавить классы в родительскую ссылку wp_list_category Vagrantpress + композитор Автоматическое удаление сообщений на основе текста контента Быстрый способ добавить страны в качестве обычного таксономического термина? Могу ли я создать настройку настраивателя, которая может обрабатывать короткий код плагина? Поиск в WordPress: красивые URL-адреса (постоянные ссылки), настраиваемые типы сообщений и разбиение на страницы

Как фильтровать по таксономии на странице пользовательского типа сообщений?

Сейчас я выводил связанные категории в текущий отображаемый тип сообщения, как показано ниже. Я использую wp_list_categories чтобы перечислять категории, и это работает отлично. Единственная проблема заключается в том, что это отображается в файле archive.php, а не в одном столбце, поэтому таксономии, которые перечисляются, ссылаются на их основной архив таксономии.

Я хотел бы связать с архивом таксономии текущий тип сообщения ( $type ), а также включить запрос для отображения этой конкретной таксономии. Как и ссылка на http://example.com?post_type=foo&custom_tax=bar

 <? $type = get_post_type(); ?> <?php $customPostTaxonomies = get_object_taxonomies($type); if(count($customPostTaxonomies) > 0) { echo '<h3>Browse By:</h3>'; foreach($customPostTaxonomies as $tax) { $args = array( 'orderby' => 'name', 'show_count' => 0, 'pad_counts' => 0, 'hierarchical' => 1, 'taxonomy' => $tax, 'title_li' => '' ); $woah = get_taxonomy($tax); echo '<ul>'; //var_dump($tax); //var_dump($woah); //print_r($woah); echo '<h4>'.$woah->labels->name.'</h4>'; echo wp_list_categories( $args ); echo '</ul>'; } } ?>` 

Solutions Collecting From Web of "Как фильтровать по таксономии на странице пользовательского типа сообщений?"

wp_list_categories использует get_term_link для получения ссылки на термины.

Эта функция имеет фильтр, который вы можете использовать для изменения возвращаемого. Проблема в том, что вы должны передать текущий тип сообщения функции, которая подключается к фильтру, но глобальная переменная должна работать для области.

Конечно, вы должны удалить фильтр после всех вызовов wp_list_categories , чтобы не мешать классу nex get_term_link .

Итак, в ваших functions.php поставьте:

 function convert_term_link_to_post_type( $termlink, $term, $taxonomy ) { global $the_current_type; if ( empty($the_current_type) ) return $termlink; $link = get_post_type_archive_link( $the_current_type ); if ( $taxonomy == 'category') $taxonomy = "category_name"; if ( $link ) return add_query_arg( array($taxonomy => $term->slug), $link ); return $termlink; } 

Затем измените код, который вы разместили следующим образом:

 $type = get_post_type(); $customPostTaxonomies = get_object_taxonomies($type); if( count($customPostTaxonomies) > 0) { echo '<h3>Browse By:</h3>'; // set the global variable global $the_current_type; $the_current_type = $type; // add the filter that convert the term link add_filter('term_link', 'convert_term_link_to_post_type', 20, 3); foreach($customPostTaxonomies as $tax) { $woah = get_taxonomy($tax); $args = array( 'orderby' => 'name', 'show_count' => 0, 'pad_counts' => 0, 'hierarchical' => 1, 'taxonomy' => $tax, 'title_li' => '' ); echo '<ul>'; echo '<h4>' . $woah->labels->name . '</h4>'; echo wp_list_categories( $args ); echo '</ul>'; } // unset the global variable unset($the_current_type); // remove the filter to not alter any other 'get_term_link' calls remove_filter('term_link', 'convert_term_link_to_post_type', 20, 3); } с $type = get_post_type(); $customPostTaxonomies = get_object_taxonomies($type); if( count($customPostTaxonomies) > 0) { echo '<h3>Browse By:</h3>'; // set the global variable global $the_current_type; $the_current_type = $type; // add the filter that convert the term link add_filter('term_link', 'convert_term_link_to_post_type', 20, 3); foreach($customPostTaxonomies as $tax) { $woah = get_taxonomy($tax); $args = array( 'orderby' => 'name', 'show_count' => 0, 'pad_counts' => 0, 'hierarchical' => 1, 'taxonomy' => $tax, 'title_li' => '' ); echo '<ul>'; echo '<h4>' . $woah->labels->name . '</h4>'; echo wp_list_categories( $args ); echo '</ul>'; } // unset the global variable unset($the_current_type); // remove the filter to not alter any other 'get_term_link' calls remove_filter('term_link', 'convert_term_link_to_post_type', 20, 3); }