Slik lager du en hjemmeside med flere lister ved hjelp av egendefinerte søk

WordPress gir deg et par innebygde alternativer for nettstedets forside: en visning av de siste blogginnleggene dine eller en statisk side etter eget valg. Men hva om du vil lage noe litt mer interessant enn det?

Hvis nettstedet ditt har mye data ved hjelp av kategorier, taksonomier eller egendefinerte innleggstyper for å organisere det, vil du kanskje vise data på mer enn én type på hjemmesiden din. Den gode nyheten er at du kan gjøre dette ved hjelp av en egendefinert mal for hjemmesiden. I denne mal skriver du en rekke tilpassede spørringer for å liste opp dataene slik du vil. I denne opplæringen lærer du hvordan du gjør følgende:

  • Opprett en tilpasset hjemmesidemal for bruk av temaet ditt
  • Ta med fire spørringer i den malen for å vise forskjellige typer data, inkludert tre tilpassede spørringer

Spørsmålene vil vise standardinnlegg pluss en tilpasset posttype registrert for dette prosjektet, kalt "dyr". Du kan finne malfilen med de fire spørringene i kodepakken.


Hva du trenger for å fullføre denne opplæringen

  • En utviklingsinstallasjon av WordPress
  • Et tema installert som du kan redigere. Hvis du jobber med et eksisterende tema, anbefaler jeg å lage et barnemne slik at du kan lage malfiler uten å redigere overordnet temaet. Jeg bruker et barntema på tjue tolv

Hjemmeside Design

Før du begynner å konfigurere startskjemaet, må du først ta deg tid til å identifisere hva som finnes på hjemmesiden:

Hjemmesiden inneholder:

  • Et overskrift med en banner og navigasjonsmeny
  • Hjemmesideinnholdet - tekst og et bilde
  • Tre oppføringer, hver med en tilpasset spørring:
    • Oppdateringer - disse er standardinnlegg i kategorien "Oppdateringer"
    • I detalj - standard innlegg i kategorien 'Detalj'
    • Dyr - disse bruker en egendefinert innleggstype kalt 'dyr'
  • En standard bunntekst

Elementene i dette oppsettet du vil jobbe med, er hjemmesidens innhold og de tre oppføringene.


Før du begynner: Sette opp dataene

Før du starter, må du ha noen ting på plass for dine spørsmål for å jobbe med:

  • Et "dyr" tilpasset posttype registrert. For detaljer om hvordan du gjør dette, se register_post_type i WordPress Codex. Alternativt kan functions.php fil i kodebuntet inneholder koden som gjør dette
  • To kategorier satt opp for vanlige innlegg - 'Oppdateringer' og 'I detalj'
  • En statisk side satt opp kalt 'Hjem', med noe innhold lagt til det. Dette bør settes opp som startside via Innstillinger-siden i WordPress-dashbordet
  • Noen få vanlige innlegg i hver kategori og noen få dyr (ved hjelp av egendefinert innleggstype). Malen vil vise opptil åtte av hver

Opprette maler for forsiden

Det første trinnet er å opprette en malfil for å holde koden din. Opprett en tom fil i temamappen din og gi den navnet front-page.php. Legg til følgende kode i filen:

  // innhold på forsiden går her 

Lagre filen din. Som du kan se, inkluderer dette filene for topptekst og bunntekst på hjemmesiden din. Ingen sidebjelke er inkludert, da det ikke er en del av hjemmesidenes design. Når du besøker nettstedet ditt, vil du nå ha en tom side med bare overskriften og bunnteksten som vises:


Legge til statisk innhold på hjemmesiden

I tillegg til å vise resultatene av egendefinerte søk, vil hjemmesiden din vise innholdet fra statisk side på hjemmesiden. For å legge til dette i malfilen din, sett inn følgende kode for å erstatte "// innhold på forsiden går her'linje:

  
>
?>

Dette er standardløkken. WordPress vil bruke den til å vise innholdet på den statiske siden du har registrert som startside. Din hjemmeside vil nå inneholde det statiske innholdet:


Den første tilpassede spørringen med WP_Query

For de egendefinerte spørringene, vil du bruke WP_Query klasse. Dette lar deg sette opp egendefinerte spørringer og kjøre en loop basert på hver for å vise innlegg.

Ved hjelp av WP_Query er mye bedre praksis enn å bruke query_posts Fungerer som sistnevnte nullstiller hovedspørsmålet og kan forårsake ytelsesproblemer. WP_Query tar et sett med parametere som definerer spørringen du vil kjøre. Noen eksempler på parametrene du kan spesifisere inkluderer (men er ikke begrenset til):

  • post_type - innlegg, sider, vedlegg eller en egendefinert innleggstype
  • kategori
  • stikkord
  • taksonomi term (er)
  • posts_per_page - Antall innlegg som skal vises
  • rekkefølge - ASC eller DESC
  • rekkefølge etter - Du kan bestille etter dato, navn, forfatter, meny_order eller mange flere parametere
  • … og mange flere

For detaljer om parametrene du kan bruke med WP_Query, se WP_Query i WordPress Codex. Å bruke WP_Query, du legger inn følgende kode:

 have_posts ()): $ query-> the_post (); // innlegg innhold for å vise her en gang; ?>

På hjemmesiden din vil du oppgi de siste åtte innleggene i kategorien «Oppdateringer». For å gjøre dette, legg til følgende kode mellom hovedspørsmålet og anropet til bunnteksten:

 

/ Kategori / oppdateringer / "> Oppdateringer

    'innlegg', 'category_name' => 'Oppdateringer', 'posts_per_page' => 8)); mens ($ query-> have_posts ()): $ query-> the_post (); ?>
  • "> -

Dette skaper en

element for å inneholde oppføringen din og åpner oppføringen med en lenke til kategorivirken i en

stikkord. Det definerer deretter argumenter for WP_Query og kjører løkken basert på spørringen. De ekstra klassene kan brukes til å utforme hver enkelt liste.


Den andre tilpassede spørringen

Det andre tilpassede spørsmålet er nesten identisk med det første, det bare spørringer innlegg fra en annen kategori. Legg til følgende etter den første spørringen og umiddelbart før den andre lukkingen

stikkord:

 

/ kategori / dybde / "> I dybde

    'innlegg', 'category_name' => 'I dybde', 'posts_per_page' => 8)); mens ($ query-> have_posts ()): $ query-> the_post (); ?>
  • "> -

Dette legger til en andre innleggsliste for innlegg i kategorien 'I detalj'.


Den tredje tilpassede spørringen: Spør en tilpasset innleggstype

Det tredje og siste spørsmålet spør ikke etter standardinnlegg, men det "animalske" postnummeret du registrerte før du opprettet malfilen din. Etter det andre tilpassede spørsmålet legger du til følgende:

 

"> Våre favorittdyr

    'dyr', 'posts_per_page' => 8)); mens ($ query-> have_posts ()): $ query-> the_post (); ?>
  • ">

Du har nå alle spørsmålene på plass og vist på hjemmesiden:


Stil oppføringene

Det siste trinnet er å legge til noen styling. For øyeblikket er oppføringene en under den andre, med svært lite i vei for avstand eller dekorasjon.

I dette trinnet legger du til noen enkle styling for å forbedre dette. I temaets stilark legger du til følgende:

 .fjern float: none; klare: begge;  .home section.archive width: 31%; margin: 10px 1%; border-top: 1px solid # 222; flyte: venstre;  .home section.archive ul li linjehøyde: 1.4em; 

Dette sikrer at oppføringene slettes under hovedinnholdet, og plasserer dem ved siden av. Det legger også til litt avstand mellom elementene i hver liste:


Sammendrag

Du har nå en tilpasset hjemmeside som inneholder innholdet på det statiske siden pluss tre egendefinerte søk som viser ulike innholdstyper. Du kan tilpasse denne tilnærmingen til forskjellige krav. For eksempel:

  • For en forsiden som bare viser arkiver og ingen statisk innhold, fjerner du først den første sløyfen
  • For å oppgi posten "dyr" på en annen måte, kan du angi taksonomier i dine argumenter for WP_Query
  • Du kan legge til eller endre innholdet som vises for hvert innlegg, for eksempel ved bruk av the_thumbnail () for å vise miniatyrbilder (eller utvalgt bilder)
  • Du kan legge til egendefinerte spørringer i sidebar- eller bunntekstmalen for å vise dem på alle sider

ressurser

Noen nyttige ressurser:

  • Codex side på WP_Query klasse: http://codex.wordpress.org/Class_Reference/WP_Query
  • Opprette en malfil for forsiden: http://codex.wordpress.org/Template_Hierarchy#Front_Page_display
  • Registrering av egendefinerte innleggstyper: http://codex.wordpress.org/Function_Reference/register_post_type