WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

Вывод рубрик (таксономий) произвольных типов записей (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 для созданный для этой страницы, но только с теми постами, для которых было указано что они относятся к данной рубрике.

0
Гость
7 лет назад
  • 1

    Назовите темплейт taxonomy-service.php.
    https://wp-kama.ru/handbook/theme/theme-files-hierarchy

    А дальше ваш урл будет формироваться в зависимости от настроек и слага который вы указали для термина.

    Riskful 7 лет назад

    Хочу поправить не taxonomy-service.php, а taxonomy-our_services.php

    stepan 7 лет назад

    И еще обновите ЧПУ, ошибка 404 уйдет.

    Комментировать
  • 0
    Kama9616

    Убедись что:

    • при регистрации типа записи к ней привязана твоя такса
    • при регистрации таксы к ней привязан тип записи

    Так мы свяжем таксу и тип записи

    Далее, в параметре 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

    7 лет назад

    Все работает.

    1. Сначала создал файл taxonomy-our_services.php
    2. Далее сбросил ЧПУ (настройки->постоянные ссылки->сохранить, нечего не меняя.)
    3. Вставил стандартный цикл (без new WP_Query) в файл "taxonomy-our_services.php" с учетом верстки слайдера.
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация