Всем привет! Создал собственный тип записи
products со своей таксономией
taxproducts согласно
статье.
Когда создается одна категория для всех записей, то все выводится хорошо. Бред начинается, когда категорий уже несколько - все собственные типы записей тогда сваливаются в кучу.
Если в шаблоне
taxonomy-taxproducts.php прописываю код ниже, то тогда для отдельных категорий все выводится правильно
<div id="primary" class="content-media">
<main id="main" class="site-main" role="main">
<h1><?php single_term_title(); ?></h1>
<?php
$cat = get_term_by('name', single_cat_title('',false), 'taxproducts'); $catSlug = $cat->slug;
$args = array(
'post_type' => 'products',
'posts_per_page' => -1,
'tax_query' => array(
array(
'taxonomy' => 'taxproducts',
'field' => 'slug',
'terms' => $catSlug
),
),
);
$query = new WP_Query( $args );
while( $query->have_posts() ) {
$query->the_post();
?>
<div class="item">
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<div><?php the_excerpt(); ?></div>
</div>
<?php
} wp_reset_postdata();
?>
</main>
</div>
Но, возникает вопрос: как вывести все категории созданной таксономии на странице?
Я думал, что за вывод отвечает файл
taxonomy-taxproducts.php, но он срабатывает у меня только для отдельной категории.
Все ссылки у меня ЧПУ задаются произвольно вот так
/%category%/%postname%/ и каждый раз при изменении заново в этом разделе все сохраняю.
Вычитал, что если ссылки ЧПУ, то обязательно нужно прописывать этот фильтр, чтобы сама таксономия не терялась
// Удаление slug таксономии:
function taxonomy_link( $link, $term, $taxonomy ) {
if ( $taxonomy !== 'taxproducts' )
return $link;
return str_replace( 'taxproducts/', '', $link );
//return str_replace( 'taxproducts/taxproducts/', '', $link );
}
add_filter( 'term_link', 'taxonomy_link', 10, 3 );
Все созданные записи у меня выводятся вот в таком формате:
sait/product/name-of-the-post
А страница
sait/product выводится пустой