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

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 if (have_posts()) : ?>

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

 <!--Tutaj jest struktura newsa-->

 <?php endwhile; ?>

<?php endif; ?>

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 query_posts('showposts=4'); ?>
			<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
				 <!--Tutaj jest struktura newsa-->
			<?php endwhile; endif; ?>

Wstawiamy nagłówek

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

<h2>Hello World</h2>

Generujemy pozostałe wpisy

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; ?>

Gotowiec

<?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; ?>

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)

Jedna odpowiedź na „“query_post()-parametr offset – wstawiamy kod między wyświetlane wpisy””

  1. Mikołaj W pisze:

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

Dodaj komentarz

Copyright: Krzysztof Neumann 2010-2012 Projekt i wykonanie:interaktywni.net