


posted on
4.03.2010
by Owl
2
Tak dla treningu zaprojektowałem skórke pod CMS Wordpress. Głównym założeniem było zbudowanie czystej i wyluzowanej strony dla nieistniejącej firmy którą nazwałem MASS. Zaprojektałem logo, wybrałem kolory a zdjęcia ściągłem z serwisu Flickr. Jest to mój trzeci projekt pod Wordpressa i cały czas się uczę obsługi PHP pod kątem CMS. Za każdym razem kiedy tworze staram się wykożystać nowe zasoby z których wcześniej nie kożytałem i tak było w tym przypadku.
Na stronie w kategorii “WORK” chciałem najzwyczajeniej zrobić liste zdjęć i obok fragmenty tekstu danego postu za pomocą standardowej funkcji the_excerpt().

Cała zabawa zaczyna się kiedy podłączyłem pod tą liste funkcję jQuery slideDown która miałaby pokazywać reszte tekstu w odzielnym DIVie na tej samej stronie – bez przeładowania. I tu pojawia się problem ponieważ funkcja Wordpress the_content() owszem pokazuje tekst ale w całości i efektem byłby powtórzony nagłówek z dwóch funkcji the_excerpt() oraz z the_content().
Pewnie istnieje na to wiele innych rozwiązań ale to jest jedyne na które wpadłem ponieważ dopiero zaczynam zabawe z PHP to nie miałem za dużo podobnych pomysłów.
Rozwiązanie jest takie żeby napisać odzielnie funkcje które zastąpią te z WordPress.
Oto kod:
<?php function my_excerpt() { $zawartosc = get_the_content(); $wyciag = explode('<*>', $zawartosc); $work_excerpt=$wyciag[0]; $work_excerpt=apply_filters('the_content', $work_excerpt); echo $work_excerpt; } function my_content() { $zawartosc = get_the_content(); $wyciag = explode('<*>', $zawartosc); $work_content=$wyciag[1]; $work_content=apply_filters('the_content', $work_content); echo $work_content; } ?>
A oto małe wyjaśnienie dla funkcji my_excerpt:
//tworze funkcje my_excerpt function my_excerpt() { //pobieram zawartość postu z funkcji get_the_content //do ciągu $zawartość $zawartosc = get_the_content(); //za pomoca explode podzielilem $zawartosc //na dwie części i zapisałem w tablicy $wyciag $wyciag = explode('<*>', $zawartosc); //pobieram pierwszą część tablicy $work_excerpt=$wyciag[0]; //nadaje jej formatowanie znaczników HTML przez WP $work_excerpt=apply_filters('the_content', $work_excerpt); //pokazuje pierwszy fragment postu echo $work_excerpt;
I dokładnie tak samo utworzyłem funkcje my_content tylko zmieniłem fragment tablicy na ‘[1]‘ w której znajduje się reszta postu:
$work_content=$wyciag[1];
Aby skrypt zaczął działać należy podczas pisania postu wstawić ten znaczek ‘<*>‘. Pokazuje on funkcji w którym miejscu ma odzielić od siebie fragmenty tekstu. Można go zastąpić czymś innym ale ponieważ nie wyobrażam sobie żebym miał kiedyś napisać jakiś post używając takiej ‘świeczki’ postanowiłem że z tego właśnie skorzystam.
Jeśli chcesz użyć moich funkcji wystarczy że skopiujesz powyższy kod (ten bez opisów) do pliku function.php (znajduje się w katalogu ../THEMES/TWOJA SKÓRKA/) i zamiast the_excerpt i the_content użyjesz my_excerpt i my_content.
hi, new to the site, thanks.
Janismini
posted on28.02.2011 02:43
Ciekawy tips.. : ) no i całkiem przyjemny szablon..
Na marginesie spytam czemu footer tak tu skacze po najechaniu na button prev?
Rafał
posted on20.06.2010 16:16