WordPress: wygląd (odc.5) – główny plik skórki

Po przeanalizowaniu kodu standardowego nagłówka i standardowego headera skórki o nazwie “Classic” pora zająć się strukturą głównego pliku czyli index.php. Jak widać na schemacie pokazanym w artykule o strukturze szablonu WordPress jest to w zasadzie najważniejszy (w połączeniu z nagłówkiem i stopką) plik tej struktury. Zawarty w nim skrypt jest wywoływany zawsze, gdy nie zostanie odnaleziony inny element szablonu, tak jak to pokazuje schemat działania skryptu zaczerpnięty z oryginalnej dokumentacji:

Jak już wspomniałam w artykule o tym jak rozpocząć tworzenie własnej skórki, plik ten rozpoczyna linia dołączająca do dokumentu nagłówek zdefiniowany w pliku header.php

<?php get_header(); ?>

a kończy linia dołączająca stopkę zdefiniowaną w pliku footer.php

<?php get_footer(); ?>

W zasadzie, definicje nagłówka i stopki mogłyby znajdować się w tym pliku. Są wydzielone do osobnych plików, tylko po to, żeby zachować przejrzystość kodu.

Pętla

Poza dwiema wspomnianymi komendami w pliku index.php znajduje się tak zwana pętla, która jest charakterystyczną dla skórek WordPressa strukturą, o następującej konstrukcji:

<?php if (have_posts()) : ?>
  <?php while (have_posts()) : the_post(); ?>
    // To co chcesz wyświetlić w pętli
  <?php endwhile; ?>
  // To co chcesz wyświetlić po skończeniu pętli
<?php else : ?>
 // To co ma się pojawiać jeśli nie ma nic do przetworzenia w pętli
<?php endif; ?>

Jest to główna i najważniejsza struktura szablonu za pomocą której wyświetlane są wszystkie wpisy, a także strony statyczne. Wykorzystane są tu dwie funkcje operujące na globalnej zmiennej ‘$wp_query’. Funkcja have_posts() (manual – codex) sprawdza, czy w bazie istnieją posty spełniające zadane warunki (różne w zależności, czy wczytujemy ostatnie posty, czy posty z danej kategorii albo wybranego miesiąca). Następnie funkcja the_posts() wczytuje dane dla kolejnego posta. Następnie w zależności od potrzeb można użyć całej serii funkcji, które pozwalają wyświetlić wybrane elementy posta. W poniższej tabeli zestawiono kilka przykładowych funkcji:

the_author() – wyświetla nazwę autora wpisu
the_category() – wyświetla kategorie wpisu
the_content() – wyświetla treść wpisu
the_excerpt() – wyświetla podsumowanie wpisu
the_ID() – wyświetla ID wpisu
the_permalink() – wyświetla link do wpisu
edit_post_link() – tworzy link do strony edycji wpisu
the_tags() – wyświetla tagi przypisane do wpisu
the_time() – wyświetla datę wpisu
the_title() – wyświetla tytuł wpisu

Opis tych i innych funkcji przydatnych przy tworzeniu skórki do WordPressa można znaleźć w manualu.

Właściwie do prawidłowego funkcjonowania WordPressa wystarczy ta pętla. Wyświetla ona zarówno wpisy bloga jak i strony statyczne. Dopiero gdy pojedynczym wpisom czy stronom statycznym definiujemy ich strukturę w osobnych plikach o ściśle określonych nazwach (patrz schemat na początku artykułu), będą one wyświetlane przez ich indywidualne skrypty.

5 komentarzy do wpisu „WordPress: wygląd (odc.5) – główny plik skórki”

  1. Też żałuję, tym bardziej, że wisiał długo i czekał na ukończenie :( Teraz właśnie pracuję nad skórką więc kolejne wpisy na ten temat będą się pojawiać. Mam nadzieję, że regularnie.

  2. Zaglądałem tu już dużo wcześniej, cieszę się, że temat odżył zanim zacząłem walczyć ze swoim motywem. Masz chyba najlepszą polską łopatę :)
    Przy okazji – nie rozumiem ostatniego zdania. Czegoś brakuje czy jest o słowo “jeśli” za dużo?

  3. Rzeczywiście, zeżarło kawałek zdania. Już poprawiłam. Dzięki za uwagę. Zapraszam do czytania kolejnych artykułów. Już się pojawił wpis nt. panela bocznego.

  4. Witaj,
    korzystam w WP z seo wtyczki Greg’s High Performance. Dzięki unikalanej funkcji umożliwia np. na stronie kategorii na której są wylistowane zajawki konkretnych postów z danej kategorii w zamian za the_excerpt() wstawić swój kod odpowiedzialny za wstawienie uprzednio przygotowanej przez siebie zajawki posta (opis). Rzecz w tym, że koniecznie trzeba to zrobić poza pętlą. Gdy wstawiam poza nią nie osiągam zamierzenia bowiem description nie wyświetla się w boksie/divie owej zajawki posta. Jak w nim wstawię – jestem w pętli. Wiesz może jak z niej wyjść, a mimo to wstawić zajawkę w diva?

    Wstawiam dla pomocy zawartość pliku template_1.php do którego odwołuje się archive.php. Plugin w znaczniku wykonuje podmianę title na drugi oraz pod tym znacznikiem podmianę opisu posta the_excerpt() zastępując go swoim, przytoczonym powyżej. Zajmie sporo miejsca:

    ID, ‘full_image_value’, true);
    //CHECK IMAGE POST
    if ($image2) { ?><a href="”><img src="/timthumb.php?src=&h=100&w=100&zc=1&q=90″ width=”100″ height=”100″ alt=”” /><?php }
    //CHECK AUTOMATIC THUMB
    elseif (catch_that_image()””) { ?><a href="”><img src="/timthumb.php?src=&h=100&w=100&zc=1&q=90″ width=”100″ height=”100″ alt=”” /><a href="”><img src="/images/blog-thumb-100×100.jpg” width=”100″ height=”100″ alt=”no image”/>

    <?php the_tags(' ‘, ‘, ‘, ”); ?>

    Niestety, żadnych treści w tej kategorii.


    Jeśli jesteś w stanie mi pomóc bardzo bym prosił.

    Pozdrawiam

Leave a Reply

%d bloggers like this: