Шаблон для таксономии не работает
Я создал пользовательский тип записи property
и привязал к нему таксономию city
. Есть несколько городов (терминов), таких как toronto
, taiwan
, dhaka
.
Я хочу создать шаблон, который будет отображать все записи для определенного города. Я создал файл taxonomy-city.php
, но он не работает.
Вот мой код для файла taxonomy-city.php
:
<?php
/*
* Имя шаблона: Город
*/
get_header();
?>
<div id="page_content">
<div class="page-wrapper">
<?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>
<div id="page_content_wrapper">
<div id="careers_table">
<p class="content_text">asdsd</p>
</div>
<?php endwhile; ?>
<?php else : ?>
<div class="post">
<h3><?php _e('Ошибка 404: Не найдено', 'cmeasytheme'); ?></h3>
</div>
<?php endif; ?>
</div>
<div style="clear:both;"></div>
</div>
</div>
<?php get_footer(); ?>
Шаблон загружается, но ничего не выводится внутри цикла.
Я также посетил эти ссылки, но они не помогли:

Прежде всего, файл taxonomy-{taxonomy}.php
является шаблоном архива, а не подходящим именем для пользовательского шаблона. Поэтому если вы хотите создать пользовательский шаблон, попробуйте назвать файл, например, template-cities.php
и подключить его к странице.
В противном случае, создайте простой шаблон архива taxonomy-{taxonomy}.php
, а в вашем случае taxonomy-city.php
с таким кодом:
<?php get_header(); ?>
<div id="page_content">
<div class="page-wrapper">
<div id="page_content_wrapper">
<?php if (have_posts()) : ?>
<div id="careers_table">
<?php while (have_posts()) : the_post(); ?>
<p class="content_text"><?php the_title(); ?></p>
<?php endwhile; ?>
<?php // код пагинации здесь ?>
</div>
<?php else : ?>
<div class="post">
<h3><?php _e('Город не найден', 'cmeasytheme'); ?></h3>
</div>
<?php endif; ?>
</div> <!-- .page_content_wrapper -->
<div style="clear:both;"></div>
</div> <!-- .page-wrapper -->
</div> <!-- .page_content -->
<?php get_footer(); ?>
Таким образом, НЕ НУЖНО создавать страницу и подключать шаблон страницы.
Рекомендации
Хотя эти рекомендации не связаны напрямую с WordPress, они относятся к хорошей практике:
- Старайтесь называть классы через дефис (-), а не через подчеркивание (_). Например, класс
page_content_wrapper
лучше назватьpage-content-wrapper
. - Избегайте встроенных стилей и создавайте классы. Например, очищающий div
<div style="clear:both;"></div>
можно заменить на<div class="clearfix"></div>
и добавить.clearfix{clear:both}
в ваш внешний CSS-файл. - Используйте комментарии для обозначения закрывающих тегов, чтобы можно было легко отслеживать структуру.

Спасибо за ваш ответ. Это мне очень помогло. Но проблема была в другом. Я допустил ошибку при создании типа записи "property". Я установил 'exclude_from_search' => true, а после изменения на false шаблон теперь отображает данные.

Я нашел руководство по пользовательским таксономиям, основанным на иерархических и неиерархических структурах. Надеюсь, это поможет вам решить вашу проблему https://www.wpblog.com/create-custom-taxonomies-in-wordpress/
