Поддержка Проблемы и решения Проблема с пагинацией на странице таксономии

  • Решено eliaskoch

    (@eliaskoch)


    Доброй ночи имеется пользовательский тип записи и к ней таксономия

    $args2 = array(
            'description' => '', 
            'public' => true,
            'exclude_from_search' => true,
            'publicly_queryable' => true, 
            'show_ui' => true, 
            'show_in_nav_menus' => true, 
            'show_in_menu' => true, 
            'show_in_admin_bar' => true,
            'menu_position' => 5,
        
            'map_meta_cap' => null, 
            'hierarchical' => false, 
      
            'taxonomies' => array('category_news'),
            'has_archive' => false,
            'rewrite' => array(
                'slug' => 'blog', // Текст в ссылке. По умолчанию: значение $post_type.
                'with_front' => false   ,
                'feeds' => false, 
                'pages' => true
            ),
            'permalink_epmask' => EP_PERMALINK, 
            'query_var' => true, 
            'can_export' => true,
            'delete_with_user' => null, 
            'show_in_rest' => false, 
            'rest_base' => $post_type, 
            '_builtin' => false, 
        );
        register_post_type( 'news', $args2);
     $args4 = array(
        'rewrite' => array(
            'slug' => 'category_news', 
            'with_front' => false,
            'hierarchical' => true, 
            'ep_mask' => EP_NONE, 
        ),
        'sort' => null, 
        '_builtin' => false, 
    );
    register_taxonomy( 'category_news', array('news'), $args4 );

    имеется страница
    taxonomy-category_news.php
    на которой я вывожу все записи с type_post = ‘news’

    <?php
    
                    $current_page = (get_query_var('paged')) ? get_query_var('paged') : 1;
                    $per_page = '2';
    
                    $args = array(
                        "post_type" => 'news',
                        'orderby' => 'date',
                        'order' => 'DESC',
                        'posts_per_page' => $per_page,
                        'paged' => $current_page,
    
                    );
    
                    $query = new WP_Query($args);
                        if ($query->have_posts()) {
                        while ($query->have_posts()) {
                            $query->the_post();
                            ?>
                            <div class="col-sm-6 col-md-3 col-lg-3 news_item">
                                <div class="row">
                                    <a href="<?php echo the_permalink() ?>">
                                        <div class="wrap_news_item">
    
                                            <div class="news_item_img"><img class="img"
                                                                            src="<?php echo the_post_thumbnail_url(); ?>"
                                                                            alt="<?php echo get_the_title(); ?>"></div>
                                            <div class="news_item_name">  <?php echo get_the_title(); ?> </div>
                                            <div class="news_prew">  <?php echo get_the_excerpt(); ?> </div>
                                            <div class="news_date"> <?php echo get_the_date(); ?> </div>
                                        </div>
                                    </a>
    
                                </div>
                            </div>
                            <?php
                        }
                    }
                   ?>
    
                </div>
                <div class="row">
                    <div class="wrap_pag">
                        <div class="pagination">
                            <?php
                            echo paginate_links(array(
                               'base' => str_replace(999999999, '%#%', esc_url(get_pagenum_link(999999999))),
                                'total' => $query->max_num_pages,
                                'current' => max(1, get_query_var('paged')),
                                'format' => '?paged=%#%',
                                'show_all' => false,
                                'type' => 'plain',
                                'end_size' => 2,
                                'mid_size' => 1,
                                'prev_next' => false,
    
                                'add_args' => false,
                                'add_fragment' => '',
                            ));
                            ?>
                        </div>
                    </div>
                </div>
            </div>
            <?php
            wp_reset_postdata();
            ?>

    на этой же странице я выводу пагинацию, и тут возникает вопрос, пагинация при попытке перейти на 2 страницу кидает меня на 404 в чем моя ошибка?

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • при использовании шаблона таксономии не надо городить огород со своими собственными циклами.

    Автор eliaskoch

    (@eliaskoch)

    хорошо а как мне тогда нужно описать файл taxanomy-category_news.php? без цикла? чтобы выводить нужную «категорию»?

    taxonomy-post_type.php

    и стандартный цикл вывода записей, который вы можете взять из archive.php или category.php вашей темы.

    Автор eliaskoch

    (@eliaskoch)

    @flector, спасибо большое ты мой спаситель)) решение моего гемороя
    созадем страницу archive-news.php там все по стандарту меняем чуть чуть шаблон и вуаля все работает!!!

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Проблема с пагинацией на странице таксономии» закрыта для новых ответов.