23
06
12
Dzielenie wpisów na strony w WordPressie
Podział na strony — edycja szablonu
O ile każdy szablon powinien sobie poradzić z wyświetlaniem tylko części wpisu, o tyle nie każdy wyświetli również odnośniki do przechodzenia do następnej i kolejnej strony.
Mój tego nie potrafił.
W takim przypadku trzeba sięgnąć po funkcję wp_link_pages(). W odpowiednim miejscu w szablonie (np. na końcu treści) dodajemy taki fragment:
<?php wp_link_pages(); ?>
Ta funkcja ma sporo argumentów, warto z nimi się zapoznać, podobnie jak z wpisem w Codeksie WP o stylowaniu tych linków.
Wywołanie funkcji oczywiście wrzucamy w plik single.php, a jeśli go w szablonie nie ma, to w plik index.php.
Zadanie to wydaje się banalne, ale jednak może przysporzyć trochę problemów. Bo sporo wtyczek dodaje bezpośrednio po treści wpisu np. przyciski do głosowania w mediach społecznościowych, czy odnośniki do podobnych artykułów. Jeśli więc dodamy wywołanie tej funkcji w szablonie pod wywołaniem treści wpisu, może się okazać, że odnośniki wypadną pod tymi dodatkami. I tam pozostaną niezauważone przez użytkownika.
Nie znam automatycznego rozwiązania tego problemu, bo też nie było mi do niczego potrzebne. Zrobiłem je ręcznie — wyłączyłem dodawanie related posts (powiązanych wpisów, generowanych przez wtyczkę YARPP) automatycznie i wkleiłem kod wyświetlający je ręcznie w plik single.php. Tym sposobem bezpośrednio pod treścią wpisów mam najpierw pasek z przyciskami do FB i Twittera, a zaraz potem odnośniki do kolejnych podstron danego artykułu.
Duplikowanie komentarzy
Domyślnie po uruchomieniu podziału na strony, na obydwu stronach z artykułem pojawiają się komentarze. Ponieważ trochę obawiam się duplikowania treści (Google nie lubi powielania treści na różnych podstronach, wyrzucając z indeksu te, które zdaniem robota są powtórzeniami), dlatego zdecydowałem o wyłączeniu wyświetlania komentarzy na kolejnych podstronach artykułu.
Komentarze wyświetlane są więc tylko na pierwszej podstronie. Na kolejnych jest komunikat o tym, że komentarze można znaleźć na pierwszej podstronie i odnośnik do niej. No i na każdej podstronie jest formularz do dodawania komentarzy. Robię to tak:
- sprawdzam, czy artykuł jest dzielony na podstrony, a jeśli tak, sprawdzam na której jestem podstronie,
- jeśli nie jest dzielony lub jestem na pierwszej podstronie, wklejam wywołanie całego bloku komentarzy (treść komentarzy + pole do ich wpisywania, najczęściej wywoływane poleceniem
<?php comments_template(); ?>
- jeśli jest dzielony i nie jesteśmy na pierwszej podstronie, wklejam odnośnik do komentarzy i formularz do komentowania (sprawdzając jednocześnie, czy w ogóle włączyłem komentowanie pod wpisem — bo jeśli nie, to i tak formularz nie zadziała i nie ma go co wklejać).
Robię to wszystko za pomocą poniższego skróconego kodu:
<?php
$paged = get_query_var( 'page' ) ? get_query_var( 'page' ) : false;
if ( $paged === false )
{
// Jeśli te warunki są spełnione, artykuł nie jest dzielony na podstrony, albo jest to pierwsza podstrona.
?><p><?php comments_template(); ?></p><?php
}
else
{
// Artykuł jest dzielony i jest to podstrona inna, niż pierwsza.
?><p>Dotychczas opublikowane komentarze wyświetlane są na <a href=”<?php the_permalink() ?>#comments”>pierwszej stronie artykułu</a>.</p><?php
if (’open’ == $post->comment_status) : ?>
<h3 id=”respond”>Pozostaw komentarz</h3>
// Tu wstawiać kod formularza do publikowania komentarzy.
<?php endif; // if you delete this the sky will fall on your head
}
?>
I w sumie tyle. Jak Wam się to podoba?
Kolejne strony artykułu: [ 1 ] [ 2 ]
Wpisy powiązane tematycznie:Dotychczas opublikowane komentarze wyświetlane są na pierwszej stronie artykułu.
Pozostaw komentarz
Pamiętaj tylko proszę o polityce komentarzy! Komentarze służą do wyrażania opinii na temat opublikowanego tekstu, albo zadawania pytań jego dotyczących. Nie służą do reklamowania własnych stron ani zadawania pytań nie związanych z tematem wpisu. Jeśli masz pytanie, zadaj je na forum o zarabianiu na blogach albo napisz do mnie e-maila.