Okiełznać WordPress’a

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ęść.

dodaj własny komentarz

Komentarzy naliczyłem: 2

Wypowiedz się!

Uwaga! Pola e-mail oraz nick są obowiązkowe. E-mail nie będzie widoczny publicznie.

Zapraszam Cię do skomentowania posta, to zawsze milej mieć odzew od Czytelników ;)
jeśli jednak masz zamiar tu tylko spamować albo wypowiadać się wulgarnie i nie na temat, to nie jesteś tu mile widziany.
Pamiętaj, że możesz użyć tagów w komentarzach:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Dzięki za uwagę:)