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.
[FMP]
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:

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:

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

Każdy, kto zapisze się na newsletter otrzyma ebooka pt. 

Dziękuję. Bardzo mi pomógł ten artykuł. U mnie każda podstrona wyświetlała tą samą treść 10 wpisów. Paginacja odsyłała do …/page/2, ale treść nie zmieniała się. Błąd tkwił w niepoprawnym kodzie ładowania wpisów na custom-page.php.
php query_posts('cat=41'); while (have_posts()) : the_post();Dobrze, że udało Ci się odnaleźć problem i go rozwiązać. Też się kiedyś musiałem z tym zmierzyć.