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:
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.
Før du begynner å konfigurere startskjemaet, må du først ta deg tid til å identifisere hva som finnes på hjemmesiden:
Hjemmesiden inneholder:
Elementene i dette oppsettet du vil jobbe med, er hjemmesidens innhold og de tre oppføringene.
Før du starter, må du ha noen ting på plass for dine spørsmål for å jobbe med:
register_post_type
i WordPress Codex. Alternativt kan functions.php fil i kodebuntet inneholder koden som gjør detteDet 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:
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:
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 innleggstypeposts_per_page
- Antall innlegg som skal visesrekkefølge
- ASC
eller DESC
rekkefølge etter
- Du kan bestille etter dato, navn, forfatter, meny_order eller mange flere parametereFor 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.
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'.
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:
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:
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:
WP_Query
the_thumbnail ()
for å vise miniatyrbilder (eller utvalgt bilder)Noen nyttige ressurser:
WP_Query
klasse: http://codex.wordpress.org/Class_Reference/WP_Query