Шаблон для таксономии не работает

9 окт. 2014 г., 09:26:02
Просмотры: 13.7K
Голосов: 1

Я создал пользовательский тип записи 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(); ?>

Шаблон загружается, но ничего не выводится внутри цикла.

Я также посетил эти ссылки, но они не помогли:

2
Комментарии

Возможно, ваша таксономия на самом деле называется cities, поэтому файл должен называться taxonomy-cities.php? Также, вы зарегистрировали таксономию с параметром public=true?

Biranit Goren Biranit Goren
9 окт. 2014 г. 09:52:24

Нет, моя таксономия называется "city" и public = true

Mithun Sarker Mithun Sarker
9 окт. 2014 г. 09:56:46
Все ответы на вопрос 1
3

Прежде всего, файл 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-файл.
  • Используйте комментарии для обозначения закрывающих тегов, чтобы можно было легко отслеживать структуру.
9 окт. 2014 г. 10:05:48
Комментарии

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

Mithun Sarker Mithun Sarker
9 окт. 2014 г. 12:03:37

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

Owais Alam Owais Alam
10 авг. 2017 г. 10:21:07

Смогу ли я связать это с товаром?

Shakil Hossain Shakil Hossain
1 дек. 2019 г. 08:52:30