Вывод рубрик (таксономий) произвольных типов записей (register_post_type).
На сайте зарегистрирован произвольный тип записи "service"
-
Для записей типа "service" зарегистрирована произвольная таксономия "our_services" ("Наши услуги");
-
Для Таксономия "our_services" создал несколько произвольных рубрик: SEO , Web_Disain , и т.д.
- Для вывода информации использую шаблон "page-service.php" внутри которого создал стандартный цикл wordpress
<?php $service_slider = new WP_Query(array('post_type' => 'service_slider'));?> <?php if ( $service_slider->have_posts() ) : ?> <?php while ( $service_slider->have_posts() ) : $service_slider->the_post(); ?> <div class="carousel-item"> <div class="carousel-image"><?php the_post_thumbnail(); ?></div> <h2 class="owl-carousel-title"><?php the_title(); ?></h2> <div class="owl-carousel-text"><?php the_content(); ?></div> </div> <?php endwhile; ?> <?php else: ?> <div class="no-carousel">...</div> <?php endif; ?> <?php wp_reset_query(); ?>
Однако в таком случае я могу вывести только все посты разом. В меню я создал пункт меню Услуги и вывел страницу "Услуги" к которой привязан шаблон. Через админку в подменю добавил ссылки на произвольные рубрики SEO и Web_Disain. Но при переходе по ним получаю страницу 404. Сама ссылка имеет вид (example.com/имя_таксономии/ярлык_рубрики).
Необходимо сделать так чтобы шаблон созданный в "page-service.php" при переходе по ссылке рубрики (например SEO) выводил стандартный цикл WordPress для созданный для этой страницы, но только с теми постами, для которых было указано что они относятся к данной рубрике.
Назовите темплейт taxonomy-service.php.
https://wp-kama.ru/handbook/theme/theme-files-hierarchy
А дальше ваш урл будет формироваться в зависимости от настроек и слага который вы указали для термина.
Хочу поправить не taxonomy-service.php, а taxonomy-our_services.php
И еще обновите ЧПУ, ошибка 404 уйдет.
Убедись что:
Так мы свяжем таксу и тип записи
Далее, в параметре public, publicly_queryable и rewrite у таксономии должно быть true... Так мы укажем, что у элементов таксы есть свои страницы во фронте за них отвечает файл шаблона taxonomy-our_service.php...
Далее, сбрось настройки ЧПУ - зайди туда и просто обнови настройки...
Далее все стандартно - указываешь шаблон рубрики в теме - taxonomy-our_service.php , где описываешь вывод отдельного элемента таксы, тот цикл который тебе нужен...
На своей странице page-service.php тебе лучше наверное выводить не записи, а элементы таксономии на странице которых будут выводиться записи. Т.е. получаешь элементы (термины таксы) через get_terms(), перебираешь их в цикле и выводишь ссылки на них через get_term_link() ...
Также имей ввиду что есть такая архивная страница типа записи, где выводятся записи этого типа, то что ты сделал для page-service.php. Её можно вкл/откл при реге типа записи, параметр has_archive - http://example.com/service. За её вывод отвечает файл шаблона archive-service.php
Все работает.