Поддержка Проблемы и решения Как связать events и single-events (Иерархия шаблонов)?

  • Здравствуйте.

    Вопрос в следующем – создал произвольный тип записи «События» (events.php]), для каждого поста это категории сделал отдельный файл для вывода (event.php]). Изначально для вывода одиночной записи events использовал:

    
    Template Name: Конкретное событие
    Template Post Type: events
    

    И вручную выбирал при создание каждого события. Потом на wp-kama наткнулся на статью «иерархию файлов темы» и попытался её внедрить, то есть файл для вывода одиночной записи переименовал из event.php в single-events.php.

    После чего решил убрать эти два файла в директорию calendar/, изначально они лежали в корне темы. Как я только перенес эти файлы, шаблон для вывода единичной записи перестал работать (по query monitor видно, что он стал подключать не single-events.php, а inedx.php), если эти файлы вернуть в корень темы — все работает нормально.

    Что необходимо прописать, в файле single-events или events, что бы после перемещения в папку calendar/ все работало?

    Файл events.php

    
    <?php
    /* Template name: События
    */
    get_header();
    ?>
    <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
        <header class="entry-header">
            <h2 class="entry-title"><a href="#" rel="bookmark">Какое-то название</a></h2>
        </header>
        <?php twentynineteen_post_thumbnail(); ?>
        <div class="entry-content">
            
            <?php
            // параметры по умолчанию
            $posts = get_posts(array(
                'numberposts' => -1,
    //'category' => 0,
    //'orderby' => 'date',
    //'order' => 'DESC',
    //'include' => array(),
    //'exclude' => array(),
    //'meta_key' => '',
    //'meta_value' => '',
                'post_type' => 'events',
                'suppress_filters' => true, // подавление работы фильтров изменения SQL запроса
            ));
            foreach ($posts as $post) {
                setup_postdata($post); ?>
                <div>
                    <a href="<?php the_permalink() ?>">Название события: <?php the_title(); ?></a>
                </div>
            <?php }
    
            wp_reset_postdata(); // сброс
            ?>
            
        </div>
        <footer class="entry-footer">
            <?php get_footer(); ?>
        </footer>
    </article>
    

    файл single-events.php

    
    <section id="primary" class="content-area">
        <main id="main" class="site-main">
            <h1><?php the_title(); ?></h1>
            <ul>
                <li>Дата: <?php the_field('data-provedeniya'); ?></li>
                <li>Город: <?php the_field('gorod-provedeniya'); ?></li>
            </ul>
        </main>
    </section>
    

    • Тема изменена 1 месяц назад пользователем  Aleksandr Yurchenko.