Jak poprawić niedziałającą nawigację wpisów w WordPressie?

  • Poziom trudności:

Pomogłem rozwiązać Twój problem? Wspieraj moje działania bym pisał więcej:

Spotkałem się niedawno z dosyć ciekawym problemem. Na stronie mojego klienta nie otwierały się wpisy z drugiej i kolejnych stron. Po zbadaniu sprawy wtyczką What The File okazało się, że w momencie przejścia na kolejną stronę z wpisami wywoływany jest szablon 404 z informacją, że strona nie została znaleziona.

Krok 1 – sprawdzenie pętli

Pierwszą rzecz jaką zrobiłem było przejście do szablonu z pętlą wyświetlającą wpisy. Pętla była w pliku home.php ale u Ciebie to może być np. index.php albo jeszcze inny plik. Niewykluczone, że będziesz musiał skorzystać z programu pozwalającego dostać się do plików na serwerze.

Sprawdziłem zawartość i pojawiły się pewne podejrzenia:

<?php query_posts( array( 'posts_per_page' => 8, 'cat' => -3, 'paged' => get_query_var('paged') ) ); ?>
	<?php if (have_posts()): ?>
	<ul id="posts"><?php while (have_posts()) : the_post(); ?>
		<li class="postWrapper" id="post-<?php the_ID(); ?>">
			<h2 class="postTitle"><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h2>
				<div class="post">
				<?php the_content( ' ' ); ?>
				<div class="clear"></div>
				</div>
				<div class="clear"></div>
		</li>
    <?php endwhile; ?>
	</ul>

	<?php else: ?>

	<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>

	<?php endif; ?>

	<?php wp_pagenavi(); ?>

Krok 2 – wykluczanie podejrzanych

Głównymi podejrzanymi zostali: WP-PageNavi oraz Pretty Permalinks.

Postanowiłem sprawdzić czy to przypadkiem nie nawigacja wpisów. W tym celu zamieniłem ostatnią linię odpowiadającą za nawigację po starszych wpisach:

<?php wp_pagenavi(); ?>

na:

<?php posts_nav_link(); ?>

Niestety nie pomogło w związku z czym upewniłem się, że to nie wtyczka WP-PageNavi sprawia problem. Na nowo wkleiłem kod odpowiadający za wyświetlenie nawigacji wpisów.

Postanowiłem sprawdzić kolejnego podejrzanego czyli ładne linki (Pretty Permalinks). Jak się pewnie domyślacie na mojej stronie ustawiłem w sekcji Ustawienia -> Bezpośrednie odnośniki ładne linki jako Nazwę wpisu. Zrobiłem to w taki sposób:

bezposrednie-odnosniki

Postanowiłem w tej sytuacji odwrócić powyższy proces i ustawić zamiast Nazwa wpisu opcję Prosty. Ładne linki znikły ale niestety to też nie rozwiązało mojego problemu z działaniem 2 strony z wpisami. Wróciłem do poprzednich ustawień i rozpocząłem na nowo poszukiwania.

Krok 3 – rozwiązanie

Rozwiązanie okazało się banalnie proste. Wystarczyło zmienić ilość wpisów wyświetlanych na stronie głównej (sekcja Ustawienia -> Czytanie na wartość z pierwszej linii pętli:

<?php query_posts( array( 'posts_per_page' => 8, 'cat' => -3, 'paged' => get_query_var('paged') ) ); ?>

WordPress miał dwie sprzeczne informacje odnośnie ilości wpisów wyświetlanych na jednej stronie i ujednolicenie tych danych rozwiązało sprawę. Naprawa po dotarciu do problemu zajęła niecałe 30 sekund, a wyglądała tak:

zmiana-ilosci-wyswietlanych-wpisow

UDOSTĘPNIJ

Pomogłem rozwiązać Twój problem? Wspieraj moje działania bym pisał więcej: