WordPress Loop

Loop je najvažniji pojam koji treba da razumje onaj ko koristi WordPress. “The Loop.” u svojoj najprostijoj generalnoj formi izgleda ovako:

<?php
// The Loop
if (have_posts()) : while (have_posts()) : the_post();

endwhile; else:

endif;
?>

Svaki iskusan programer zna da je “while” loop standardni koncept sve jednog programskog jezika, i ovdje se koristi kao standardni PHP. Kao prvo loop će provjeriti da li postoji post (“if”). Ukoliko post postoji ako je “true” onda će loop početi. Onda dolazi funkcija “the_post()” koja pokreće internu WordPress funkciju i nakon što je the_post() ponovljen nekoliko puta “have_posts()” postane “false” i loop se zaustavlja.

Jeste li išta skontali od ovoga što rekoh? Jel niste,  zato de da vidimo možemo li bolje?

Loop na prostom Bosanskom

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div class=”post” id=”post-<?php the_ID(); ?>“>
<h2><a href=”<?php the_permalink(); ?>” rel=”bookmark” title=”Permanent Link to <?php the_title_attribute(); ?>“><?php the_title(); ?></a></h2>
<?php echo get_post_meta($post->ID, ‘PostThumb’,
true); ?>
<p class=”meta”>
<span>Posted on</span> <?php the_time(‘F jS,
Y’); ?>
<span>by</span> <?php the_author(); ?>
</p>
<?php the_content(‘Read Full Article’); ?>
<p><?php the_tags(‘Tags: ‘, ‘, ‘, ‘<br />‘); ?>
Posted in <?php the_category(‘, ‘); ?>
<?php comments_popup_link(‘No Comments;’,
’1 Comment’, ‘% Comments’); ?>
</p>
</div>
<?php endwhile; ?>
<?php next_posts_link(‘Older Entries’); ?>
<?php previous_posts_link(‘Newer Entries’); ?>
<?php else : ?>
<h2>Nothing Found</h2>
<?php endif; ?>

Prvo te pita imaš li post, je li išta napisano? Ako nema izvinjavamo se, ostatak koda ne važi!

OK, imamo post loop može početi.

Sad će loop da kruži kroz broj postova koje ste označili u Settings–>Reading kao broj postova koje želite.

Pokupit će header tag sa linkom gdje će tekst biti naslov posta a link će biti permalink ka postu.

Specijalno polje zakaceno za naslov će biti prezentiran. U ovom slučaju “Post Thumb”.

“Meta” informacije su prezentirane: mjesec, dan i godina publikacije kao i ime autora.

Cjelovit sadržaj posta je prikazan: sve kategorije i tagovi kao i broj komentara sa linkom ka komentarima.

Zaustavi Loop.

Ukoliko postoje stariji postovi, pokazi linkove.

Sta ako nema starijih postova?

Reci ljudima da znaju.

Gotovo!

Loop zna sve….

Kao što smo vec donekle objasnili loop je prerušeni “while” loop. Ukoliko ima postova u databazi prezentiraj ih. Teoretski, loop je jednostavan ali je teško skontati kako loop zna šta da loopa. While…šta? Kako meni izgleda osnovna loop funkcija zna prije nego joj ja kažem šta dolazi, šta dolazi! Ukoliko i ti želiš da znaš šta dolazi pokušaj da ga “echo” na web stranici ubacujuci mali kod direktno ispred loopa.

<?php echo $query_string; ?>

Ako “echo” index.php loop vjerovatno ćete dobiti nešto kao:

posts_per_page=5&what_to_show=posts&orderby=date&order=DESC

U prevodu: pokaži 5 postova u padajućem redu (prvo najnoviji pa onda stariji, pa još stariji…)

Elem, loop zna šta radi!

Loopovi koji se često koriste

Dok ste u lupu imat ćete pristup funkcijama koje nisu na raspolaganju negdje drugdje. To su funkcije koje prezentiraju ono što je specificno za svaki pojedini post. Kad kažem ovo ja ne kažem da su funkcije ograničene same po sebi već da samo neke imaju smisla a neke nemaju pa se ne koriste u datom lupu.

Uzmimo na primjer:

<?php the_title(); ?>

Ova funkcija prezentira naslov posta. sjetite se da smo u lupu, i ako taj loop kruži 5 puta funkcija će prezentirati 5 različitih naslova.

Evo nekoliko korisnih za samo “unutar lupa” funkcija:

• the_permalink() – prezentira permalink URL za svaki post.
• the_ID() – prezentira ID svakog posta
• the_author() – prezentira ime autora svakog posta
• the_category()- prikazuje kategoriju ili kategorije u kome se svaki post nalazi.

Dok ste u lupu, imate pristup i ostalim preprogramiranim varijablama koje će biti popunjene nakon što je the_post() pokrenut. Te varijable postoje kao dio objekta “post” i koje su ponekad neizmjerno korisne.

• $post->ID – vraća post ID; koristan za druge funkcije koje koriste ID.
• $post->post_content – vraća sadržaj posta uključujući markup.
• $post->post_modified – vraća datum zadnje modifikacije posta.
• $post->post_name – vraća “slug” posta.

Uobičajene “izvan loopa” funkcije

Neke funkcije su napravljene za globalnu upotrebu i ne moraju da imaju veze ni sa jednim pojedinačnim postom. Takve funkcije se koriste izvan loopa. Neke od njih su:

• wp_list_pages() – prezentira linkove ka statičnim stranicama sajta.
• next_posts_link() – prezentira link ka sledećim postovima u arhivi.
• wp_tag_cloud() – prezentira tag cloud.
• get_permalink() – vraća permalink posta za korišćenje u PHP

Ovo su samo neke funkcije od mnogih koje su nam na raspolaganju. Ono sto želim ovim da istaknem je da znate da neke funkcije mogu raditi kako treba samo u sklopu loopa dok neke rade i izvan loopa.

Slični članci

Leave a Comment

Previous post:

Next post: