publikacja: 5 maja 2009, autor: , komentarzy 26 https://wpninja.pl/artykuly/wasze-pytania-zajawka-i-dalsza-czesc-wpisu-w-oddzielnych-div-ach/

Wasze pytania: Zajawka i dalsza część wpisu w oddzielnych div-ach

Wasze pytania: Zajawka i dalsza część wpisu w oddzielnych div-ach

Andrzej przesłał do mnie takie oto zapytanie:

(…) Otóż single.php dzieli mi stronę na divy (i to jest ok) ale chciałem zrobić tak by w 1-szym divie był content aż do znacznika <!--more--> a w drugim divie reszta po znaczniku.

Przy rozwiązaniu skorzystamy z dodatkowych parametrów jakie oferuje funkcja the_content(), która odpowiada za wyświetlanie treści głównej wpisu. Jej pełna składnia prezentuje się następująco:

<?php the_content('more_link_text', strip_teaser, 'more_file'); ?>

Obiektem naszych zainteresowań jest parametr strip_teaser – typ logiczny odpowiedzialny za wyświetlanie zajawki (FALSE) lub jej ukrywanie (TRUE).

Wyświetlanie zajawki i dalszej części wpisu

Dla przypomnienia, standardowe wywołanie funkcji:

<?php the_content(); ?>

da nam następujący wynik (pierwszy akapit to zajawka, drugi to dalsza część wpisu):

wasze-pytania-zajawka-i-dalsza-czesc-wpisu-w-oddzielnych-div-ach-01

Standardowe wywołanie funkcji the_content();

Wyświetlanie jedynie dalszej części wpisu, bez zajawki

Gdy funkcję wywołamy z ustawionym parametrem strip_teaser na TRUE czyli:

<?php the_content('', true, ''); ?>

to otrzymamy tylko dalszą część wpisu, bez zajawki:

wasze-pytania-zajawka-i-dalsza-czesc-wpisu-w-oddzielnych-div-ach-02

Wyświetlenie jedynie dalszej części wpisu, bez zajawki

Czyli pół zadania wykonane :-).

Wyświetlanie jedynie zajawki, bez dalszej treści wpisu

Tutaj 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 strony.

Tak więc, wywołanie nastepującego kodu:

<?php
   global $more;
   $more = 0;
   the_content('', false, '');
   $more = 1;
?>

wyświetli jedynie zajawkę, bez dalszej części wpisu (i bez odnośnika „czytaj więcej):

wasze-pytania-zajawka-i-dalsza-czesc-wpisu-w-oddzielnych-div-ach-03

Wyświetlenie jedynie zajawki, bez dalszej części wpisu

A to druga część zadania :-).

Wyświetlenie zajawki i dalszej części wpisu w oddzielnych div-ach

Składając obie funkcje w jeden kod otrzymamy to samo co na początku z tą różnicą, że teraz możemy umieścić zajawkę i dalszą część wpisu w oddzielnych blokach:

<div style="background:#E7E7E7">
   <?php
      global $more;
      $more = 0;
      the_content('', false, '');
      $more = 1;
   ?>
</div>
 
<div style="background:#DFDFC3">
   <?php the_content('', true, ''); ?>
</div>

Czego efektem będzie:

wasze-pytania-zajawka-i-dalsza-czesc-wpisu-w-oddzielnych-div-ach-04

Wyświetlenie zajawki i dalszej części wpisu w oddzielnych div-ach

Dodaj własny komentarz