• Всем привет. Столкнулся с проблемой вывода постов. Помогите плиз.
    регистрирую новый тип постов autosale.php:

    <?php
    add_action( 'init', 'true_register_post_type_init' );
     
    function true_register_post_type_init() {
     
        $labels = array(
            'name' => 'Автопродажи',
            'singular_name' => 'Автопродажи',
            'add_new' => 'Добавить Авто',
            'add_new_item' => 'Добавить Авто',
            'edit_item' => 'Редактировать Авто',
            'new_item' => 'Новое Авто',
            'all_items' => 'Все Автопродажи',
            'search_items' => 'Искать Автопродажи',
            'not_found' =>  'Автопродажи по заданным критериям не найдено.',
            'not_found_in_trash' => 'В корзине нет Авто.',
            'menu_name' => 'Автопродажи'
        );
     
        $args = array(
            'labels' => $labels,
            'public' => true,
            'publicly_queryable' => false,
            'has_archive' => false,
            'menu_icon' => 'dashicons-email-alt2',
            'menu_position' => 2,
        //    'supports' => array( 'title' )
            'supports' => array( 'title', 'editor' )
        );
     
        register_post_type( 'autosale', $args );
    }

    и есть страница для которой задействован шаблон вывода :

    <?php
    /*
    Template Name: Personal Page Template
    Template Post Type: post, page, autosale
    */
        //******
                        
                        <h4><?php the_title(); ?></h4>
                        <br>
                        <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a>   
        
        //******

    Вывод заголовка и ссылка на сам пост = http://mysite/autosale/хххххххххххххххх/

    Проблема в том что при переходе по ссылке перебрасывает на главную страницы.
    В папке template-parts — создал файлы single-autosale.php, page-autosale.php, content-autosale.php, archive-autosale.php — но ни один из этих шаблонов не срабатывает.
    Помогите плиз, как быть. Может где то настройки не правильно выставлены?

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Почитайте в букваре вдумчиво описание аргументов функции register_post_type

    single-autosale.php положите в корень темы
    archive-autosale.php и это тоже в корень темы


    пример содержимого файла шаблона архива archive-autosale.php:

    <?php
    /**
     * Шаблон архива для типа записей "Автопродажи"
     *
     * @link https://developer.wordpress.org/themes/basics/template-hierarchy/
     *
     * @package your-theme
     */
    
    get_header(); ?>
    
    <main id="primary" class="site-main">
        <div class="container">
            <header class="page-header">
                <h1 class="page-title"><?php post_type_archive_title(); ?></h1>
            </header><!-- .page-header -->
    
            <?php if (have_posts()) : ?>
                <div class="row">
                    <?php while (have_posts()) : the_post(); ?>
    
                                    <?php the_title('<h2 class="entry-title">', '</h2>'); ?>
    
    
    
                                    <?php the_excerpt(); ?>
    
                            </article><!-- #post-<?php the_ID(); ?> -->
                        </div><!-- .col -->
                    <?php endwhile; ?>
                </div><!-- .row -->
                <?php the_posts_pagination(); ?>
            <?php else : ?>
                <p><?php esc_html_e('No posts found', 'your-theme'); ?></p>
            <?php endif; ?>
        </div><!-- .container -->
    </main><!-- #primary -->
    
    <?php
    get_footer();

    вот пример файла шаблона для отдельной записи single-autosale.php:

    <?php
    /**
     * Шаблон для отдельной записи типа "Автопродажи"
     *
     * @link https://developer.wordpress.org/themes/basics/template-hierarchy/
     *
     * @package your-theme
     */
    
    get_header(); ?>
    
    <main id="primary" class="site-main">
        <div class="container">
            <div id="content" class="row">
                <div id="primary" class="content-area col">
                    <div class="single-post">
                        <?php
                        while (have_posts()) : the_post();
                            get_template_part('template-parts/content', 'autosale');
                        endwhile; // End of the loop.
                        ?>
                    </div><!-- .single-post -->
                </div><!-- #primary -->
            </div><!-- #content -->
        </div><!-- .container -->
    </main><!-- #main -->
    
    <?php
    get_footer();
    • Ответ изменён 8 месяцев, 1 неделя назад пользователем KosTeams.
Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Вывод постов и детальное описания поста.» закрыта для новых ответов.