badsanta2008
@badsanta2008
Software engineer (Vue.js/Wordpress)

Как в Wordpress грамотно вывести таксономию?

Всем привет!
Очень прошу помочь мне с этим вопросом. Чтобы читатель понимал, что я не с пустого места задаю такой вопрос, могу сказать, что я потратил несколько дней на понимание структуры формирования страниц пользовательской таксономии. Я полагаю, что я сделал 80% работы и мне нужно только соединить это воедино.

Вот что я хочу сделать:
prntscr.com/8r8pdt
prntscr.com/8r8phr
prntscr.com/8r8pky

Вот описание проблемы:

Я хочу создать сайт каталог организаций. У организации должно быть порядка 8 полей различного характера, поэтому возникла необходимость создания кастомной таксономии. Я создал пользовательскую таксономию с помощью плагина. У каждой записи в админке я создал по несколько дочек-категорий - prntscr.com/8r758y.

Так вот, мне нужно создать/модифицировать четыре страницы для вывода постов и категорий:

[A] каталог родительских категорий(главная страница),
[B] каталог всех категорий всех уровней(страница каталог),
[C] каталог родительской категории с подкатегориями каждого подуровня(страница, на которую попадаешь, когда кликаешь по главной родительской категории на главной странице[A])(страница отдельной категории),
[D] сама пользовательская запись(страница поста).

[A] Главная страница.
На главной нужно, чтобы выводились только родительские категории самого верхнего уровня. У каждой такой категории должна быть ссылка на список подкатегорий(каталог родительской категории с подкатегориями каждого подуровня[C]).

[B] Страница каталога(почти тоже самое, что и главная страница).
Отличие в том, что на главной выведены только родительские категории, а в каталоге выведены все категории.

[C] Каталог родительской категории.
Здесь должны быть выведены подкатегории и под-подкатегории главной родительской категории, на которую кликнул пользователь с главной страницы. Помимо этого, после каждой самой низшей под-подкатегории должен быть выведен список записей соответствующей под-под категории. У каждой подкатегории и под-подкатегории не должно быть ссылок, но должно быть выведено количество постов у каждой подкатегории. По клику на организацию мы должны переходить на страницу поста.

[D] сама пользовательская запись(страница поста).
В ней должны быть выведены все пользовательские поля.

Вроде написано много, и возможно звучит внушительно, но, как мне кажется, это обычный вывод записей с небольшой модификацией категорий. То есть задача простая.

Вот, что я сделал:
Ссылка на главную - leon-tgn.ru.
Ссылка на каталог - leon-tgn.ru/catalog/
Ссылка на запись - leon-tgn.ru/company/autotehcentr-maximum/

Я на главной странице вывел список главных категорий.
Вывел вот так:
<ul>
<?php $hiterms = get_terms("company_category", array("orderby" => "slug", "parent" => 0, "hide_empty" => 0)); ?>
<?php foreach($hiterms as $key => $hiterm) : ?>
<li>
<?php $term_link = get_term_link( $hiterm ); ?>
<a href="<?php echo esc_url( $term_link ); ?>">
<span><?php echo $hiterm->name; ?></span>
</a>
</li>
<?php endforeach; ?>
</ul>


И у них есть ссылки. Но ссылки ведут не туда. Такое ощущение, что категория ссылается на саму себя. Хотя для вывода записи я создал шаблон taxonomy-company.php. И по сути он работает, если я вижу вот эти поля записи по этой ссылке - leon-tgn.ru/company/autotehcentr-maximum/. Собственно для каталога я также создал шаблон taxonomy-company_category.php. Этот шаблон я через админку прилинковал к странице каталога. И он тоже работает.
Вот его код:
<?php 
$args = array(
'hide_empty'     => 0,
'hierarchical'     => 1,
'taxonomy'        => 'company_category',
'walker'             => null
);
wp_list_categories( $args ); 
?>


Надеюсь, я понятно объяснил. Чувствую, что я неправильно создал шаблоны для вывода категорий и записей. Но что именно я упустил, я не знаю. Подскажите, пожалуйста.

Буду очень благодарен каждому.
  • Вопрос задан
  • 3387 просмотров
Пригласить эксперта
Ответы на вопрос 1
seoperin
@seoperin
Full stack web developer. Laravel / Vue
Попробуй для ссылок the_permalink()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы