NemProgrammering.dk logo

Introduktion til “The loop”

Avanceret WordPress » Introduktion til “The loop” # 8
Denne video kræver medlemskab
Læs mere!
Introduktion til “The loop”

Information om denne video

Underviser: Thomas M. Iversen   Video: 15:21   Lektion nr. 8 af 39

En af de vigtigste funktioner i WordPress kaldes “The loop”. The loop henter indhold ind på dine sider, så det er en funktion der bruges på både indlæg, sider, kategorisider, forsiden, arkiver mm.

I denne video vil du lære, hvordan the loop fungerer, så du har en forståelse for hvad det er, når du med sikkerhed engang støder på funktionen, når du arbejder i dine temafiler.

I næste video skal vi se på functions.php filen, som er den fil du skal arbejde i, hvis du vil tilføje ny funktionalitet til dit tema. I næste video giver jeg en introduktion til functions.php filen samt et eksempel på, hvad du kan bruge den til.

Spørgsmål og kommentarer

Kun medlemmer med adgang til dette kursus kan stille spørgsmål og kommentere. Bliv medlem her!

  • Carsten Lund M. siger:

    Hvor længe bliver der udskrevet “Nyt indlæg” ud (10:40), for det er vel kun nyt, så længe indlægget ikke er læst?

    1. Thomas I. siger:

      Hej Carsten,

      “Nyt indlæg” er kun en test streng, for at vise, at der bliver udskrevet noget hver gang der findes et indlæg i loopet – du kan skrive alt muligt andet, for at teste det. “Nyt indlæg” er således en statisk tekst, som ikke ændrer sig selvom indlægget er læst, og det er som beskrevet blot noget jeg skriver ind i loopet for at vise, hvordan det fungerer.

      Mvh.
      Thomas

      1. Carsten Lund M. siger:

        Hej Thomas, tak for svaret, når vi snakker loop, var testeksemplet “nyt indlæg” ikke så godt, da det jo netop er det loops gør, opdaterer efter hvert gennemløb, hvorfor man forventer at teksten fjernes når indlægget er åbnet.

        Jeg har med loops stødt på udtrykket querystring
        I dette eksempel BuddyPress: members( bp_ajax_querystring'( ‘members’ ) ) ) : ?>

        Vil du forklare dette udtryk?

        Samtidig er der i BP en decideret php loop fil, der hedder members-loop.php.

        I de eksempler du viser, findes loops embedded i filerne. Hvad er forskellen på en decideret loop php filer som members-loop.php og de andre.
        Jeg har en ide om, at man ikke skriver i loop.php filer, men kalder loopet vha querystring udtrykket?

        1. Thomas I. siger:

          Hej Carsten,

          Grundlæggende, så er en querystring, når man tilføjer forskellige parametre til din url, som kan bruges af et script på den givne side.
          Se her: https://en.wikipedia.org/wiki/Query_string

          Deres dokumentation af funktionen er:

          https://codex.buddypress.org/developer/function-examples/bp_ajax_querystring/

          Jeg tror derfor, at du har ret i at den givne funktioner kalder loopet, og medgiver et parameter “members”, så loopet ved, at det er members der skal loops igennem. Man kan så sikkert bruge querystring funktionen med andre paramter-værdier end ‘members’ for at loope igennem andre ting.

          Her er en yderligere forklaring på deres activity loop: https://codex.buddypress.org/developer/loops-reference/the-activity-stream-loop/

          Der er ikke den store forskel på at smide loopet i en template for sig, fremfor at lave det direkte i filen. Det er nok bare en måde at dele det hele mere op, så det er nemmere at vedligeholde. Hvis de f.eks. bruger det samme loop i flere flere filer, giver det mening at smide det i en template for sig, så de kun skal rette et sted, hvis de vil ændre i netop det loop.

          Mvh.
          Thomas

  • Kim P. siger:

    Hej,

    Jeg har opsat mit lokale test miljø og bruger en anden template end den i bruger i videoen. Nu er jeg kommet til at skulle ændre i front-page.php, men sådanne side eksisterer ikke i mit tema og synes ikke at kunne finde noget der minder om. Det pågældende tema hedder Divi.

    Så spørgsmålet er så hvad kan man alternativt gøre, hvis der ikke findes en front-page.php fil i ens tema?

    1. Thomas I. siger:

      Hej Kim,

      Hvis du ikke har en front-page.php fil, så er det fordi at dit tema ikke benytter sig af en speciel template til forsiden. Istedet bruges måske den samme side-template (page.php) til både forsiden og almindelige sider.

      Hvis du gerne vil teste det, kan du prøve at kopiere page.php til dit childtheme og omdøbe den til front-page.php, og så gøre som i videoen. Du vil sikkert opleve, at dit tema nu bruger front-page.php templaten som din forside.

      Du kan altså sagtens selv oprette den, hvis du ikke har den.

      DIVI er så vidt jeg kan se et betalings tema, og jeg kan derfor ikke teste det af, men tænker at temaet sikkert har en anden fil som bliver brugt til forsiden eller også er der lavet et mere avanceret system til at udforme denne via temaet…Så vidt jeg ved er DIVI et ret tungt tema, med en pagebuilder integreret, så folk der ikke kan kode også kan opbygge f.eks. en forside der er forskellig fra de andre sider.

      Mvh.
      Thomas