Om du är en WordPress-temautvecklare, en programmerare eller bara en allmän entusiast som vill lära dig vad en WordPress-loop är, är den här artikeln för dig! Utan vidare, låt oss börja med grunderna: Vad är en loop?
WordPress-slingan är en PHP-kod som visar WordPress-inlägg eller helt enkelt; det används i olika teman för att visa inlägg på en given webbsida. Inte bara att det körs på de flesta sidor du ser, utan det låter dig också ändra och anpassa det efter dina önskemål.
Dessa webbslingor kan användas för att kanske lista inlägg efter antal kommentarer, visa inlägg med bilder och så vidare.
När du tittar på loopen kan du se att vissa funktioner körs som standard för att visa inlägg. Temautvecklare kan använda dessa funktioner och malltaggar för att anpassa hur varje inlägg i slingan visas.
Dessa malltaggar fungerar bara i WordPress-standardslingan, och den används för att formatera, ordna och publicera inläggsdata.
WordPress loop är utan tvekan den mest avgörande delen av WordPress-koden, och låt oss dyka djupt in i hur din webbplats loopar.
WordPress sidslinga för nybörjare
Som vi redan nämnt är postloopen en kod som matar ut all information WordPress har om ett eller flera inlägg. Den körs i bakgrunden genom varje inlägg, och den hittar databasen en efter en, vilket gör att den kan ge information om alla hittade inlägg.
Här är ett exempel på hur WordPress loop-through-inlägg fungerar:
- du startar loopen,
- vidta åtgärder med varje hittat inlägg eller sida,
- stäng slingan.
Dessa tre steg representerar den grundläggande logiken bakom slingan. Från denna punkt kan du bli kreativ och filtrera inläggen du hittade genom att använda frågan. Frågan berättar för slingan vad vi letar efter. I vårt exempel skulle det se ut så här:
- definiera vad vi letar efter,
- starta slingan,
- vidta åtgärder med varje hittat inlägg eller sida,
- stäng slingan.
Om du har erfarenhet av PHP-kod kanske du är bekant med "while"-funktionen som används i loopar för att köra igenom databasfrågan och dynamiskt visa informationen utan att behöva ange varje enskild databasrad manuellt.
WordPress while loop fungerar på samma sätt.
Exempel på en vanlig WordPress-loop
Nedan är ett exempel på en vanlig WordPress-loop som kan användas på vilken sida som helst.
<?php if (have_posts() ): ?> <?php while (have_posts() ): the_post() ?> // Post display here <?php endwhile ?> <?php else: ?> // Content if there are no posts to show <?php endif ?>
Ta en titt på funktionerna have_posts() och the_post(). Den första avgör om det finns några inlägg att visa, och den andra ställer in data och interna punkter som hjälper have_posts()-funktionen.
Om det inte finns något att visa, bör funktionen visa ett meddelande som informerar användarna.
Om det finns inläggen vi letar efter kommer slingan att visa dem en efter en.
Här, ha ett kodblock som faktiskt kommer att visa inlägg, det är på oss!
`<?php if (have_posts() ): ?>
<?php while (have_posts() ): the_post() ?>
<div <?php post_class() ?>>
<a href=”>
<div class=’post-excerpt’>
<?php the_excerpt() ?>
<div class=’post-meta’>
<?php the_time( ’Ym-d’) ?>
<?php if (has_category() ): ?>
<span class=’post-categories’><?php the_category( ’, ’) ?>
<?php endif ?>
<?php endwhile ?>
<?php else: ?>
Det finns inga inlägg här
Vill du gå tillbaka till <a href=”>hemsidan?
`
Innehållet som visas här bestäms av frågan som vi redan pratat om, och hur det innehållet visas beror på slingan. Denna mängd anpassning är fantastisk och det är det som gör att WordPress sticker ut.
Bra jobbat! Nu vet du vad en postloop är!
### Använder kod för att ändra huvudfrågan
Innan vi börjar måste vi varna dig för att ändring av huvudfrågan kan få oavsiktliga konsekvenser om du inte vet vad du gör. Var försiktig när du experimenterar!
Vi måste titta på krokarna om vi vill modifiera kärnfunktionalitet. Krokarna gör det möjligt för oss att ändra textlängd, ändra inloggningsskärmen, omformulera felmeddelanden, ändra anpassade inläggstyper och så mycket mer.
add_action( 'pre_get_posts', 'my_exclude_category' ); function my_exclude_category( $query) { if ($query->is_home() && $query->is_main_query()) { $query->set( 'cat', '-92'); } }
Observera att vi använder pre_get_post-kroken för att ändra parametern för huvudfrågan innan den körs. Koden ovan gör samma sak som den tidigare, men den här gången utesluter den kategori 92 från vår hemsida. Därför ändras huvudfrågan
Ta en titt på funktionerna is_home() och is_main_query(). De är här för att se till att frågan endast ändras på startsidan och om det är huvudfrågan.
Här är en annan kod som kan vara användbar i en WordPress-bloggslinga.
Låt oss säga att en författare på din webbplats har plagierat en del (eller allt) sitt innehåll och du vill ta bort alla hans eller hennes inlägg permanent, eller tills problemet är löst.
Det kan göras genom att lägga till en kod så här:
add_action( 'pre_get_posts', 'my_exclude_author' ); function my_exclude_author( $query) { $query->set( 'author', '-23' ); }
Med denna villkorsfunktion tar du bort författarens inlägg från både din webbplats och din backend. Du kan hitta alla villkorliga taggar i WordPress Codex. Så här ska den sista koden se ut till slut:
add_action( 'pre_get_posts', 'my_exclude_author' ); function my_exclude_author( $query) { if( !is_admin()) { $query->set( 'author', '-23' ); } }
### Avslutande tankar om WordPress loop
Att använda WordPress loop är ett utmärkt sätt att anpassa dina inlägg, sidor eller helt enkelt – din webbplats. Slingan kräver att du har en grundläggande förståelse för hur WordPress fungerar och kodlogik.
Om du inte vill göra ett snabbtest rekommenderar vi inte att du använder query_posts()-funktionen. Du kan använda olika krokar om du behöver ändra den ursprungliga frågan. Var alltid försiktig när du ändrar WordPress loop-koden.
Vi hoppas att den här artikeln var ett bra första steg mot din behärskning av WordPress loop!
Om du gillade den här artikeln om WordPress loop bör du också läsa dessa:
– 504-fel i WordPress: Hur man fixar det
– 12 tips för att skapa en framgångsrik WordPress Premium Plugin eller Tema
– Hur utnyttjar man webbläsarcache i WordPress? Steg att följa

