Моя проблема заключается в разбивке на страницы, которую я использую в Wordpress. Я использовал плагин WP Pagenavi. Я не совсем уверен, что с ним не так.Разбивка страницы: Страница 3 Не найдена в установке WordPress
Я нашел ответ на мою проблему, используя этот код:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>
<?php query_posts('cat=4&posts_per_page=15'.'&paged=' . $paged); ?>
Но, к моему разочарованию, когда я уменьшил posts_per_page до 5, я могу получить пагинацию работать до стр.2, но когда я нажимаю страницу 3 и так далее, WordPress не может его найти. Я использовал другое решение из своих исследований:
<?php
$limit = '5';
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts('cat=4&showposts=' . $limit . '&paged=' . $paged);
$wp_query->is_archive = true; $wp_query->is_home = false;
?>
Это все еще не помогло. Я не хочу прикасаться к functions.php. Я только редактирую category.php.
Проверьте мой блок кода ниже:
<?php if (is_category('category1')) { ?>
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>
<?php query_posts('cat=1&posts_per_page=15'.'&paged=' . $paged); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<!-- SOME CODE TO POST THE POST -->
<?php endwhile; ?>
<?php wp_pagenavi() ?>
<?php endif; ?>
<?php } else if (is_category('category2')) { ?>
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>
<?php query_posts('cat=2&posts_per_page=15'.'&paged=' . $paged); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<!-- SOME CODE TO POST THE POST -->
<?php endwhile; ?>
<?php wp_pagenavi() ?>
<?php endif; ?>
<?php } else if (is_category('category3')) { ?>
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>
<?php query_posts('cat=3&posts_per_page=5'.'&paged=' . $paged); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<!-- SOME CODE TO POST THE POST -->
<?php endwhile; ?>
<?php wp_pagenavi() ?>
<?php endif; ?>
<?php } else if (is_category('category4')) { ?>
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>
<?php query_posts('cat=4&posts_per_page=5'.'&paged=' . $paged); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<!-- SOME CODE TO POST THE POST -->
<?php endwhile; ?>
<?php wp_pagenavi() ?>
<?php endif; ?>
<?php } else { ?>
<!-- SOME CODE -->
<?php } ?>
Пожалуйста, обратите внимание, что category1 и category2 дисплей 5 сообщений, а остальные 2 категории будут отображаться 15 сообщений. И все это в категории.php.I не хочу использовать # сообщений, заданных в настройках> Чтение.
Если вы думаете , если заявление и положить также кошка ID избыточно, ну, он не получает сообщения этой категории имени.
UPDATE
Я использовал этот код:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>
<?php $args = array ('post_type' => 'post','cat' => '4','posts_per_page' => '5','paged' => $paged);?>
<?php $my_query = new WP_Query ($args);?>
Опять же, это сработало, НО это только показывает две страницы! Я даже не знаю, где третья страница, возможно, должна быть 3-я страница.
Никогда не используйте 'query_posts', он разбивает разбиение на страницы и основной запрос. Поскольку это ваш category.php, вам также не нужен пользовательский запрос, используйте цикл по умолчанию, а затем используйте 'pre_get_posts' для изменения основного запроса соответственно. –
Я попытался использовать pre_get_posts, но никаких сообщений пока нет. Я не знаю почему. Извините, я плохо разбираюсь в PHP, поэтому объяснение довольно сложно понять. –
Нет проблем, замечательно, что вы попробовали 'pre_get_posts'. Я думаю, что это просто недоразумение, которое заставило вас потерпеть неудачу. Я постараюсь опубликовать решение. Я отправляю с моего телефона, поэтому его сложно закодировать. Кроме того, я не могу проверить, что я код –