Znacznik <!--more-->
, który umieścimy we wpisie dzieli go na zajawkę oraz pozostałą treść. Dzięki temu na stronie głównej i w paru innych miejscach zamiast pełnej treści artykułu otrzymamy jedynie skróconą wersję z zakończeniem w stylu „czytaj dalej”.
Załóżmy teraz, że chcemy stworzyć statyczną stronę, na której znajdować się będzie lista wpisów z danej kategorii wraz ze skróconą przez znacznik <!--more-->
treścią. Tutaj pojawiają się problemy ponieważ zarówno plik single.php
jak i page.php
całkowicie ignorują znacznik…
Podobny problem miał keithan na forum polskiego supportu WordPressa:
Na mocno zmodyfikowanym defaultowym theme chce wyswietlic na pojedynczym wpisie zajawki pozostalych artykulow. Pojawia sie problem w postaci wyswietlenia calego tekstu z pozostalych artykulow.
Zarówno dla single.php
jak i page.php
rozwiązanie jest identyczne, proste ale wcale nie takie oczywiste. W pętli, która generuje listę należy dodać poniższą linijkę:
<?php global $more; $more = 0; ?>
Dzięki temu znacznik oddzielający zajawkę od pozostałej części tekstu nie będzie już ignorowany.
Komentarze
[…] posłużymy się rozwiązaniem, które już opisywałem a które wiązało się z ignorowaniem znacznika more przy wyświetlaniu pojedynczego wpisu czy […]
odpowiedzNo niestety – u mnie nie działa. Chyba, że jakoś źle wklejam kod.
odpowiedzCzy da się zastosować w wersji 2.7, aby na głównej pojawiały się tylko streszczenia ?
Dzięki! Ten artykuł mi wszystko wyjaśnił :)
odpowiedz@Symbian,
odpowiedzKod działa nawet dla najnowszej wersji WordPressa (2.8.3) i działać będzie jeszcze pewnie stosunkowo długo… Zwróć uwagę, że kod trzeba umieścić w pętli.
Witam
odpowiedzPonieważ nie za bardzo się znam to chciałbym zapytać gdzie ten kod dokładnie wkleić?
Nie jest dla mnie jasne:”W pętli, która generuje listę …”. Próbowałem wklejać do wspomnianych wyżej plików, ale coś mi nie działa. Mam najnowszą wersję WordPressa, jak wklejam funkcję more we wpisie to działa, a na stronie statycznej nie działa niestety. Mógłbym ew. przesłać te moje 2 pliki. Bardzo proszę o pomoc i z góry dziękuję. pozdr JurekZ
To już jest bardzo indywidualna kwestia, zależna od projektu konkretnego motywu. Napisz z jakiego motywu korzystasz lub wrzuć go gdzieś do pobrania.
odpowiedzW imieniu Jurka zamieszczam odpowiedź (poszła na e-mail w odpowiedzi na powiadomienie :-)):
motyw można pobrać tutaj https://wordpress.org/themes/annarita
odpowiedzDziękuję koledze za wyręczenie, faktycznie źle to posłałem zamiast odpowiedzieć tutaj. :-)
odpowiedzNo to mamy motyw i teraz gdzie te wpisy wkleić, bo tak jak pisałem ta sztuka mi się nie udała :-(
Plik page.php, po 17 linijce – czyli PO wywołaniu funkcji the_post()
odpowiedzZrobiłem tak no i zadziałało ale nie do końca ;-(
odpowiedztzn. ukrywa tekst i wstawia link „więcej… ” tylko że potem można klikać na ten link i nic się nie rozwija.
Czyli zadziałało jak najbardziej poprawnie …nie rozwija, bo i nie ma czego rozwijać (za każdym razem pobierany jest tylko fragment do quicktagu „more”). Inaczej, ten sposób nie zadziała w sposób jakiego oczekujesz na pojedyńczej stronie. Zadziałał by, gdyby to był szablon strony prezentujący zajawki innych stron (np strona A, na której jest zajawka strony B i link Read more B). W obrębie samej siebie to nie zadziała.
Jeżeli chcesz mieć przejście do dalszej części, to najprostszym rozwiązaniem jest zostawić jak było wcześniej, a zamiast qiucktagu „more” użyć „nextpage”.
Jeżeli zaś miało by to być oparte na „more”, to trzeba by kombinować inaczej – np. pobierać cały content, dzielić na oddzielne bloki, a potem javascriptem regulować który ma być ukryty a który widoczny. -Znacznie więcej dłubaniny w kodzie.
odpowiedzOK, teraz rozumiem, w takim razie najprościej zrobię za pomocą „nextpage”. Dziękuję za podpowiedź.
odpowiedzKurcze, chyba 2 godziny spędziłem przeszukując google dlaczego WP ignoruje mi to i odpowiedź znalazła się na rodzimym podwórku :)
odpowiedzDzięki za artykuł.
Dzięki wielkie. Bardzo mi brakuje takiego przycisku na Twoim blogu służącego do doceniania Twoich wpisów. Często się przydają :)
odpowiedzProszę bardzo. Cieszę się, że pomimo upływu czasu artykuł nadal jest przydatny. Wprawdzie przycisków do oceniania nie ma, ale zawsze możesz kliknąć na „Lubię to” Facebooka, „+1” Google lub tweetnąć :-).
odpowiedzFajnie. Nie wiedziałem o tym. Nie używałem tego w ten sposób choć już dawno zrezygnowałem z używania zajawek na korzyść wypisów. Z tego względu, że początkowa treść wpisy (do znacznika
) nie zawsze wygląda tak jak bym chciał aby się przedstawiała. Biorąc np. pod uwagę fakt skrótowego przedstawienia zawartości wpisu.
Dzięki za artykuł.
Pozdrawiam Ciepło ;)
odpowiedzHej,
Jak zamienić słowo
<!--more-->
w znaczniku na np: „czytaj dalej” lub „więcej”?Pozdrawiam
odpowiedzJuż znalazłem dla tych co nie wiedza to w wersji tekstowej wystarczy wstawić np: coś takiego
<!--more Czytaj dalej-->
Pamiętajcie że musi to być wersja tekstowa w edytorze a nie wizualna.
Pozdrawiam
odpowiedzZgadza się, można to zrobić w sposób który opisałeś powyżej.
Inny sposób, którego zaletą jest to, że robi się go tylko raz, polega na edycji kodu. Wystarczy odnaleźć wywołania funkcji
the_content()
i zamienić ją nathe_content('Czytaj dalszy ciąg...')
.Można też posłużyć się specjalnym filtrem:
odpowiedzhttp://justintadlock.com/archives/2009/07/01/how-to-filter-a-wordpress-themes-more-link-text
Podaj dokładnie jak to zrobić bo ja mam z tym problem
odpowiedzLatka lecą a wpis nadal pomaga. Co prawda w tym wypadku komentarz ale zawsze. :)
odpowiedzWitam,
odpowiedzJa mam troszkę inne cudo mianowicie zamiast „read more” mam trzy kropeczki i nie wiem jak to zmienić.
Byłabym wdzięczna za pomoc.
Pozdrawiam Marzena
Czy nie jest to przypadkiem ten sam problem, o którym wspominał wcześniej Marcin?
odpowiedzTak też myślałam i przejrzałam cały edytor i u mnie nie ma the_content()
u mnie wygląda tak:
get_header(); ?>
Tutaj możesz wkleić kod PHP: http://wklej.org/ :-)
odpowiedzMi nie udało się tego zrobić nie wiem czemu
odpowiedzMam pytanie czy na stronie głównej moge użyć zwijania tekstu bo nie działa u mnie ta funkcja ,działa tylko jak dodaję wpisy na blogu
odpowiedzMam ten sam problem. Mam statyczną stronę, która nie wyświetla wpisów i chciałbym zrobić tak, żeby na końcu krótkiej zajawki pojawiał się button 'read more’, po kliknięciu w którego rozwija się reszta. Nie do końca wiem jak to zrobić.
odpowiedzProszę o pomoc, co należy dodać i gdzie??
odpowiedzW szablonie twenty ten
odpowiedzPoprawiłem zapis w powyższym artykule.
odpowiedzMam ten sam problem używam szablonu colinear, chcę stworzyć dodatkową kategorię w menu, która będzie wyświetlać zajawki wpisów. proszę o pomoc.
odpowiedzA co w przypadku, gdy przycisk “read more” na stronie głównej – statycznej przekierowuje na … stronę główną zamiast na stronę wpisu?
Z góry dziękuję za odpowiedź.
odpowiedzW takim przypadku trzeba zajrzeć do plików motywu i fragmentu, który generuje wspomniany odnośnik. Być może ktoś wstawił go „na sztywno” i zapomniał dopisać właściwy adres :-)
odpowiedzWitam,
odpowiedznie potrafię sobie poradzić z tym problemem. Nie mam pliku index.php. Korzystam z szablonu Church. Zmiana kodu plików index, single ani page.php w szablonie Omega (nadrzędnym) nic nie daje. Może mógłby ktoś pomóc? :)
Kurcze jakoś mi nie zadziałało…
odpowiedzDodaj własny komentarz
Odnośniki z innych stron
Lista innych stron, które w jakiś sposób odnoszą się do opublikowanej tutaj treści:
[…] posłużymy się rozwiązaniem, które już opisywałem a które wiązało się z ignorowaniem znacznika more przy wyświetlaniu pojedynczego wpisu czy […]