query_post()-parametr offset – wstawiamy kod między wyświetlane wpisy

utworzone przez | Sie 24, 2011 | Blog, WordPress | 1 komentarz

Myślałeś nad wstawieniem reklam google między ciąg postów wyświetlanych w archiwum albo na stronie głównej?? A może chciałbyś by pierwszy post wyświetlał się inaczej niż pozostałe? Dzięki parametrowi offset jest to bajecznie proste

Jeszcze raz o co w ogóle chodzi

Problem polega na zarządzaniu kodem wyświetlanych wpisów, wstawianiu między poszczególne wpisy kodu HTML/PHP (np reklam  Google, Ad Taily czy bloku najpopularniejszych wpisów), albo określeniu sposobu wyświetlenia pierwszego wpisu w inny sposób niż pozostałych (patrz blok „tematów dnia” na onet.pl)

Zabieramy się do pracy

Jeśli pierwszy raz edytujesz szablon WordPressa i nie miałeś styczności z funkcją query_post() polecam zapoznać się z  poradnikiem Damiana Sochackiego- WordPress-funckja query_post

Otwieramy plik w którym chcemy zmodyfikować wyświetlanie wpisów (może to być plik index.php, home.php, category.php archive.php itd.). Znajdujemy pętlę ma ona postać:

[php]
<?php if (have_posts()) : ?>

<?php while (have_posts()) : the_post(); ?>

<!–Tutaj jest struktura newsa–>

<?php endwhile; ?>

<?php endif; ?>[/php]

Dodajemy query_post()

Na potrzeby tego poradnika  przyjmijmy, że po wyświetleniu czterech wpisów wyświetlimy nagłówek z napisem „Hello World” i potem następne wpisy.

Generowanie pierwszych czterech wpisów

Najpierw generujemy cztery pierwsze wpisy. Tutaj rewolucji nie będzie wklejamy query_post() i dodajemy parametr showpost. Kod będzie wtedy wyglądać następująco:

[php]
<?php query_posts(‚showposts=4’); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<!–Tutaj jest struktura newsa–>
<?php endwhile; endif; ?>

[/php]

Wstawiamy nagłówek

Po wklejeniu powyższego kodu  czas na nagłówek „Hello World”. Doklejamy poniższy kod:

[html]<h2>Hello World</h2>[/html]

Generujemy pozostałe wpisy

Teraz główny gwóźdź programu, parametr offset. Musimy wstawić go do następnej funkcji query_post().

[php]<?php query_posts(‚offset=4’); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<!–Tutaj jest struktura newsa–>
<?php endwhile; endif; ?>[/php]

Gotowiec

[php]<?php query_posts(‚showposts=4’); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<!–Tutaj jest struktura newsa–>
<?php endwhile; endif; ?>

<!–Tutaj rozpoczyna się Hello World–>
<h2>Hello World</h2>
<!–Tutaj kończy się Hello World–>

<?php query_posts(‚offset=4’); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<!–Tutaj jest struktura newsa–>
<?php endwhile; endif; ?>
[/php]

Podsumowując

To tyle jeśli chodzi w parametr offset. W następnym artykule pokażę jak zrobić sekcję temat dnia taką jak jest na onet.pl (również za pomocą parametru offset)

1 komentarz

  1. Mikołaj W

    Witam, wszystko działa, super thx, ale pojawia się podstawowy błąd – nie działa przechodzenie na starsze posty. Jak to rozwiązać?

    Odpowiedz

Wyślij komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.