Okiełznać WordPress’a
Wrzesień 3rd, 2008 W kategorii: WordPress

Tydzień się bawiłem żeby mój blog wyglądał i działał tak jak chce. Wymagało to trochę wyjścia poza standardowe funkcje typu get_sidebar(), ale się opłaciło. Nie owijając dłużej w bawełnę, kilka porad jak zrobić to i tamto.
Stała szerokość tytułów
Było mi to potrzebne, aby wyświetlać ostatnie posty na głównej stronie w takiej formie jak obecnie. Z tego co wiem nie ma prostego sposobu na zrobienie tego w WP, ja znalazłem za to łatwy, skuteczny i brutalny w swej prostocie. Dla każdego wyjadacza w PHP to pestka ale dla tych mniej obeznanych prezentuje:
Najpierw wklejamy sobie w header.php po znaczniku body taką funkcję
<?php
function skracacz($text) {
$chars = 20; // 20 oznacza liczbę znaków którą zostawiamy...
$text = $text." ";
$text = substr($text,0,$chars);
$text = substr($text,0,strrpos($text,' '));
$text = $text."...";
return $text;
}
?>
Funkcja ta obetnie podany ciąg znaków do określonego przez nas, a na koniec doda 3kropki.
A jak jej użyć?
<?php $text = $post->post_title; echo skracacz($text); ?>
ot i cała magia.
Wklejamy to zamiast <?php the_title(); ?> w pętli, która ma pokazywać skrócone tytuły.
Proste?
Różne rodzaje nawigacji w zależności od kategorii
To w sumie będzie jeszcze prostsze. Problem jest taki: Mam sobie kategorię portfolio. Dodaje w niej posty w różnych przedziałach czasowych, więc zdarzyć się może, że przed wpisem o moim nowym projekcie znajdzie się wpis z przepisem na kluski. A nie chce żeby osoba, która zacznie przeglądać portfolio widziała takie rzeczy. W skrócie chcę żeby sobie łatwo nawigowała między wpisami z kategorii portfolio.
Jak to zrobię? Wkleję do single.php:
<?php
if (in_category('9')) { // 9 to ID kategorii portfolio w moim przypadku.
echo "<div class='navigation'>";
echo "<div class='left link_naw1'>"; previous_post_link('%link', 'Poprzedni', TRUE); echo "</div>";
echo "<div class='right link_naw'>"; next_post_link('%link', 'Następny', TRUE); echo "</div></div>";
}
else {
echo "<div class='navigation'>";
echo "<div class='left link_naw1'>"; previous_post(' %', ''); echo "</div>";
echo "<div class='right link_naw'>"; next_post('% ', ''); echo "</div></div>";
}
?>
Jak odróżnić stronę główna od 2,3,4 itd strony bloga.
Problem: mamy główną fajną stronę gdzie wyświetlamy posty na fikuśne sposoby przy tym zaprzęgając kilkukrotnie funkcję wp_query(). Ale co zrobić jeśli chcemy by użytkownik chcący obejrzeć poprzednie wpisy widział je w klasycznej prostej formie?
Otóż całkiem prosto, załóżmy że mamy swój index, a w nim oprócz standardowych funkcji (get_header() itd.) trzymających naszą skórkę coby się nie rozleciała, mamy <div> z zawartością naszej głównej strony. Bierzemy cały ten div, wycinamy i wklejamy w nową pusta stronę która nazywamy glowna.php. Następnie tworzymy plik stronax.php (oba pliki umieszczamy w folderze z naszą skórką rzecz jasna) gdzie przygotowujemy taki szablon wyświetlania postów, który nam pasuje. A w miejsce naszego diva z index.php wklejamy taki oto kod:
<?php
if ( $paged < 2 ) {
include('glowna.php');
}
else {
include('stronax.php');
}
?>
To tyle na początek.:) Mam nadzieję, że komuś się przyda. Niedługo kolejna część.
Łukasz Girek, uzależniony od internetu i dobrego designu. Na blogu postaram się dzielić z Wami wszystkimi co związane z tworzeniem w Sieci. Od projektowania, przez tworzenie do użytkowania. Będzie też trochę o muzyce i filmie. Blog będzie pełnił także funkcje osobistego portfolio. Zapraszam i dzięki za uwagę!
Hej..
wielkie dzieki duzo mi to pomogło.
Próbuje ciągle rozwijać swoją stronę :)
Świetny tekst :) dzięki wielkie