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
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)
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 if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <!--Tutaj jest struktura newsa--> <?php endwhile; ?> <?php endif; ?>
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.
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 query_posts('showposts=4'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<!--Tutaj jest struktura newsa-->
<?php endwhile; endif; ?>
Po wklejeniu powyższego kodu czas na nagłówek „Hello World”. Doklejamy poniższy kod:
<h2>Hello World</h2>
Teraz główny gwóźdź programu, parametr offset. Musimy wstawić go do następnej funkcji query_post().
<?php query_posts('offset=4'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<!--Tutaj jest struktura newsa-->
<?php endwhile; endif; ?>
<?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; ?>
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)
Copyright: Krzysztof Neumann 2010-2012 Projekt i wykonanie:interaktywni.net
Witam, wszystko działa, super thx, ale pojawia się podstawowy błąd – nie działa przechodzenie na starsze posty. Jak to rozwiązać?