Пагинация и WP_Query
В посте у тебя написано:
Можно измерить значение posts_per_page на конкретное число необходимых нам постов на одной странице. Например, posts_per_page=10 выведет только 10 постов, а если при этом в конце цикла поставить тег шаблона posts_nav_link(), то под циклом появится ссылка для перехода к следующим 10-ти постам (ссылка пагинации).
Из поста: WP_Query()
Именно это мне и нужно! Я много чего на твоем сайте на эту тему перерыл, но этот абзац описывает то что нужно сделать лучшим способом...но как это сделать?
Прости что много кода...Это моя вся кастомная страница:
$classes = new WP_Query(array( 'category_name' => 'classes', 'posts_per_page' => '5' ));
тут цикл с использованием переменной classes, дальше конец цикла где должна быть пагинация:
<?php endwhile; ?> <?php echo posts_nav_link(); ?> <p class="pagination"> :( НУ ЧТО ЖЕ НУЖНО-ТО ЗДЕСЬ УКАЗАТЬ??? :( </p><!--pagination--> <?php else: ?><p>пустой раздел</p> <?php endif; ?> <?php wp_reset_postdata(); ?>
Тут все упирается в глобальную переменную $wp_query... У меня там немного не правильно было написано, подправил...
Короче, надо делать так:
<?php global $wp_query; $wp_query = new WP_Query(array( 'category_name' => 'classes', 'posts_per_page' => '5', 'paged' => get_query_var('paged') ?: 1 // страница пагинации )); while( have_posts() ){ the_post(); the_title(); // Цикл Цикл Цикл ... } posts_nav_link(); // пагинация - echo тут не надо wp_reset_query(); // сброс $wp_query ?>Нет слов! Ты маг!
Спасибо за помощь! Заработало!
Перепробовала все возможные способы, ничего не помогло. Пока не наткнулась на статью о archive-name.php К сожалению ссылку на статью уже не вспомню.
Сделала следующее и все заработало: пагинация вывелась и ошибка 404 исчезла.
Создала новый шаблон archive-portfolio.php, создала новую страницу, в настройках страницы указала этот шаблон. На этой странице должны были выводится записи (нового типа 'portfolio') для вывода самой записи был создан файл single-portfolio.php
в function.php: обратите внимание на 'has_archive' => true
//Создаем новый тип записей add_action('init', 'register_post_types'); function register_post_types() { register_post_type('portfolio', array( 'label' => null, 'labels' => array( 'name' => 'Портфолио', // основное название для типа записи 'singular_name' => 'Портфолио', // название для одной записи этого типа 'add_new' => 'Добавить работу', // для добавления новой записи 'add_new_item' => 'Добавление работы', // заголовка у вновь создаваемой записи в админ-панели. 'edit_item' => 'Редактирование работы', // для редактирования типа записи 'new_item' => 'Новая работа', // текст новой записи 'view_item' => 'Смотреть работу', // для просмотра записи этого типа. 'search_items' => 'Искать работу', // для поиска по этим типам записи 'not_found' => 'Не найдено', // если в результате поиска ничего не было найдено 'not_found_in_trash' => 'Не найдено в корзине', // если не было найдено в корзине 'parent_item_colon' => '', // для родителей (у древовидных типов) 'menu_name' => 'Портфолио', // название меню ), 'description' => '', 'public' => true, 'publicly_queryable' => true, // зависит от public 'exclude_from_search' => false, // зависит от public 'show_ui' => true, // зависит от public 'show_in_menu' => true, // показывать ли в меню адмнки 'show_in_admin_bar' => true, // по умолчанию значение show_in_menu 'show_in_nav_menus' => true, // зависит от public 'show_in_rest' => true, // добавить в REST API. C WP 4.7 'rest_base' => null, // $post_type. C WP 4.7 'menu_position' => 5, 'menu_icon' => 'dashicons-format-gallery', 'hierarchical' => false, 'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt'), // 'title','editor','author','thumbnail','excerpt','trackbacks','custom-fields','comments','revisions','page-attributes','post-formats' 'taxonomies' => array('skills'), 'has_archive' => true, 'rewrite' => true, 'query_var' => true, )); }В файле archive-portfolio.php запустила обычный цикл
Надеюсь это кому-то поможет)
Очень помогло!
Весь день решал проблему и ваше сообщение довело меня до решения проблемы)