Шаблон для таксономии не работает
Я создал пользовательский тип записи 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 шаблон теперь отображает данные.
Mithun Sarker
Я нашел руководство по пользовательским таксономиям, основанным на иерархических и неиерархических структурах. Надеюсь, это поможет вам решить вашу проблему https://www.wpblog.com/create-custom-taxonomies-in-wordpress/
Owais Alam