Bygg et avis tema med WP_Query og 960 CSS Framework

WP_Query er et kraftig verktøy for å kontrollere hva som kommer ut av sløyfen din. I dag skal jeg lære deg alle hvordan du bruker det til å lage et 3-kolonneert avis-tema som har alle dine hovedblogginnlegg i hovedkolonnen, og av til siden et sett med innlegg med en bestemt kategori. Vi skal bruke 960 CSS rammeverk for grunnleggende oppsett og tilbakestilling av temaet, vil det hugge mye arbeid av det som trengs!

Forord

Vår plan for angrep er å ta ut alle innlegg med en delt tildelt kategori, og
plasser dem til side skilt fra hovedpostene. Vi vil også se på en metode
for å opprette et "populært innlegg" uten å bruke jQuery eller noen JavaScript i det hele tatt! Jeg har også kastet sammen en .psd (ved hjelp av maler som 960 gir deg på nedlasting) av hva
vi sikter på å oppnå i dag. Last ned .psd her.

Vi antar at du har et levende WordPress-installasjon, enten det er lokalt eller vert. Hvis du trenger litt hjelp med det, er det verdt først å lære å installere WordPress lokalt på Windows eller OS X.

Trinn 1: Nødvendighetene

Alrighty. Så bortsett fra det åpenbare behovet for et WordPress-installasjon, går vi
å trenge noen ekstra ting også. Jeg har en hel masse filer du trenger
har i temamappen din.

  • Alt må gå i en temapakke med wp-content / themes /, så skape
    en mappe som heter triColumnNews, og plasserer alt som foregår i den!
  • 960 CSS Framework - Dette er ganske åpenbart også. Innenfor din triColumnNews
    mappe, opprett en annen mappe med navnet 960. Gå over til
    960 Grid System og hente en kopi av rammen. I nedlastingen vil du
    finn noen mapper. Åpne mappen som er riktig kalt 'kode' og kopier de 3 CSS-filene (960.css,
    reset.css og text.css) i 960-mappen du opprettet et sekund
    siden. Det er alt søtt nå.
  • functions.php - Vi trenger en sidebar, så vi trenger functions.php
    å registrere det.
  • bilder mappe - Vel duh ... Hvert anstendig tema har noen bilder! Skape
    mappebildene, og plasser
    bodyBg.png og
    searchBg.png i den.
  • index.php - Et opplagt konsept ... Vi jobber hovedsakelig med dette.
  • page.php og single.php - Vår indeksside vil ha 3 kolonner rett? Men
    Jeg tror ikke at enkelte sider krever 3 kolonner. Vi endrer delmalsidene
    på slutten, slik at hvis du går til en side, er det ikke alt forvirret på grunn av
    feil WP_Query på indeksen (feil for den spesifikke siden, ikke indeksen).
  • style.css
    - Kopier det over og rediger det tilsvarende hvis du ønsker det.

Fikk alt det? Flink. Du bør settes for resten av opplæringen nå! Ikke glem det
for å aktivere temaet i WP-admin (wp-admin / themes.php).

Trinn 2 - HTML og grunnleggende WordPress Kode

Jeg skal ikke gi deg all WordPress-koden ennå. Jeg skal gi deg
all WordPress-koden du trenger, unntatt WP_Query's. De får et skritt inn
deres egne, fordi de definitivt trenger forklaring! Det ville fylle opp siden måten også
mye, så jeg har tatt med alt i en .txt i stedet for her.
Last ned den, og kopier den til index.php. Eller skriv det, uansett hva som passer. Typing
hjelper deg med å huske hva du gjør!

Noen ting å merke seg

Det er en hel del kode som skal behandles, så jeg vil bare utheve de interessante delene
for deg, og forklare dem.

  • hode - Dette er alt bare WordPress ting. Stylesheet, RSS2 link, og noen
    WP ting.
  • #dato og tid - Har du noen gang lest en avis som ikke har datoen
    opp topp? Ikke jeg heller. La oss ikke starte nå, hm? Dette viser datoen i formatet:
    (Den 17. juli 08). Vi flyter denne vei oppe, så det forblir i nettleservinduet
    til alle tider! Bare fordi…
  • skjema - Dette er søkemåten for bloggen! Jeg har bare sittende fast
    en til å fylle opp plass og gjøre det enda mer overbevisende!
  • dynamic_sidebar - Det forklarer det i utgangspunktet ... Det er sidebaret vi vil ha,
    kalt triNews, slik at den kan identifiseres i Dashboard.
  • Merk - Du kan se at det allerede begynner å ta form i
    Vilkår for layout (et veldig komplisert layout, men ikke tilbakestillingen!) - Jeg har importert
    960 filer ved hjelp av en @import i style.css, for å lagre HTTPRequests, og det gir også
    våre kode foreldreffekt over 960-koden.
  • Alle de små morsomme klassene ... Les videre.

960-klassene

Så jeg vedder på at du merker alle disse små 'grid_5' og 'container_12' klassene og
går det, hva er det? Vel, la meg forklare deg. Tallet som følger med 'grid_'
er antall kolonner vi vil ha som velger div for å være. Fordi vi vil ha 12 kolonner,
vi pakker hele greia (ved hjelp av div # wrapper) med 'container_12'-klassen.
I den grunnleggende CSS jeg ga deg med, har den importen for de tre 960 filene,
så vi har allerede en halv layout når vi ikke har kodet noen CSS i det hele tatt!

Dette vil ikke se for prangende. Det har ikke blitt stylet, og det har ikke engang innhold:

Trinn 3 - WP_Querys

Det er her hvor alt magien skjer! Vi har tre WP_Querys:

  • theirNews - Så vi har splittet nyheter, ikke sant? Vi vil bare ha denne delen
    Vis innlegg med kategorien 'deresNyheter'. På min del, (av min testblogg) jeg har gitt
    ca 7 av mine innlegg i denne kategorien. Du bør også gi dem noen. Du trenger også
    for å finne kategorien ID for deresNyheter-kategori, men jeg tar deg raskt gjennom
    hvordan finner du det senere.
  • kjennetegnet - Husk at jeg sa at jeg skal vise deg hvordan du lager et innlegg uten
    jQuery? Her er løsningen i et nøtteskall: Vis bare det siste innlegget til dags dato
    i sin egen spørringssløyfe.
  • hoved- - kunsten med dette er at vi ikke vil ha kategorien av deresNyheter
    her inne, heller ikke vi vil ha det første innlegget. Det er enkelt, du vil se om et minutt.

Trinn 3: 1 - theirNews

Så vi ønsker en kolonne av WordPress-innhold fra bare en enkelt kategori. Hvordan gjør vi
gjør det? Bruker enorme rekke parametere WP_Query gir oss
med, det er lett å gjøre det. Erstatt theirNews kommentar i index.php med:

spørring ( 'category_name = theirNews & showposts = 7'); mens ($ deresNyheter-> har_poster ()): $ deresNyheter-> the_post (); ?>  

Spørsmål! La oss hoppe rett inn i den.

  • $ theirNews er variabelen spørringen vi bruker for delen "deresNyheter".
    Dette definerer en ny spørring, hele grunnlaget for WP_Query.
  • spørsmål(); - Her er våre spesifikke parametere. Vi vil bare vise maksimalt
    7 innlegg, alle under kategorinavnet 'theirNews'. Du kan endre disse variablene
    rundt selvfølgelig er 7 bare antall innlegg jeg har kategorien tildelt.
  • Resten av koden er et forkortet sløyfe, som er spesifisert ved hjelp av vår $ theirNews
    variabel.

Vi trenger noen spesifikk sløyfekode.

 

Les hele artikkelen '); ?>

Bare tittelen innpakket i a h4 tag, med innholdet innpakket i en div
klassifisert 'oppføring'. Flott! Du har gjort din første WP_Query ut av 3, det burde
nå bare liste kategorier med navnet 'theirNews'

Trinn 3: 2 - kjennetegnet

Vi vil bare vise 1 innlegg, det har ikke kategorien 'deresNyheter'. Bare 1.
Siden du nå forstår grunnleggende for WP_Query, gir jeg deg full koden
(erstatt FEATURED POST-kommentaren med):

spørring ( 'showposts = 1 & cat = -59'); mens ($ featured-> have_posts ()): $ featured-> the_post (); ?>

Skrevet under .

Dette er vårt utvalgte innlegg, så jeg har hensiktsmessig kalt div 'featuredPost',
men siden vi senere vil ha stiler fra vanlige innlegg, har jeg tatt med
klasse "innlegg".

Samme avtale med WP_Query. Denne gangen viser parameterne bare 1 innlegg som ikke er
fra kategorien 59. Kategori 59 er ID for kategorien 'deresNyheter'. jeg trenger
for å fortelle deg hvordan du får det!

  1. Åpne WP-Admin.
  2. Klikk på administrere.
  3. Klikk på Kategorier.
  4. Klikk på kategorien 'theirNews' (eller hva du har kalt det).
  5. Sjekk nettadressen til siden. Det burde være noe sånt:

    Se hvordan den har det & Cat_ID = 59 på slutten? Dette er ditt kategorinavn.
    Mine er 59, pass på at du endrer den til hva som helst ID av din "deresNyheter" -kategori!

  6. Husk at nummeret, vi trenger det i den neste spørringen også.

Forskjellen med funksjonen er hovedsakelig den h2. Fordi det er den
nest største overskrift på siden. Vei opp i delen "deresNyheter" vi pakket inn
inn i a h4 element, fordi etter hovedkolonnens innlegg blir det
neste overskrift på siden. Alt for styling skyld.

Trinn 3: 3 - hoved-

Vår siste WP_Query. Denne vil bli alle innlegg eksklusive innlegg inneholdt
av kategorien "deresNyheter" (Du trenger ID. Mine var 59, kan du huske din?).
Men fordi vi allerede viser det første innlegget samlet (funksjonen
post), vi vil ikke vise det igjen, ikke sant? Så vi må kompensere innleggene av
1 - lett å gjøre med WP_Query's kraftige parametere. Bytt på MAIN WP QUERY-kommentaren
i index.php med dette:

spørring ( 'posts_per_page = 5 & offset = 1 & cat = -59'); mens ($ main-> have_posts ()): $ main-> the_post (); ?> 

Skrevet under .
Les hele artikkelen '); ?>
  • posts_per_page - Er akkurat hva det er ... Når du kommer på å legge til neste
    og tidligere sider overstyrer det du angir i WP-Admin. Jeg har 3 som standard,
    og kunne ikke plages å skifte, så jeg gjorde det 5 for hovedkolonnen.
  • offset - Husk hvordan jeg sa at vi ikke trenger å vise det første innlegget, fordi
    Vi har allerede den i den anbefalte innleggsseksjonen.
  • cat = -59 - Vi må spesifisere hvilken kategori som ikke skal inkluderes - deresNyheter
    - og for meg har den ID på 59. '-' rett før tallet teller i utgangspunktet
    for utelukkelse.

Så det er all HTML og WordPress-koden vi trenger. Det vil fortsatt se grunnleggende, men
den vil ha den generelle 3 kolonneoppsettet vi er ute etter!

Trinn 4 - CSS

Nå fordi alt vårt layout er ganske mye gjort, er det hovedsakelig bare styling som er
behov for! nedlasting
alt dette CSS, og lim det inn i din style.css. Det er noen ting som
overstyre standard 960-koden. Vi trenger ikke å bruke !VIKTIG fordi
den nye koden er faktisk høyere opp den hierarkiske stigen enn 960-koden. Vi
bruk 960-koden som en slags "base" som vi bygger opp fra. Hvis du dekorere
grunnlag av et hus, ser du fortsatt de rå grunnene? Denne "dekorasjonen"
er hovedsakelig på topptekster, men noen generell styling brukes til tekstinnhold etc. En
større overstyring er kroppens skrifttype. Vi spesifiserer Georgia, når standard er faktisk
Helvetica. Fonter er virkelig opptatt, jeg har nettopp brukt Georgia til å være
forskjellig! Når du har limt inn og lest gjennom hele CSS, bør forsiden være
se komplett!


Trinn 5 - Sub Template Files (valgfritt)

Jeg inkluderer bare denne delen, slik at jeg ikke får noen zillion spørsmål spør hvorfor enkelte
sider returnerer informasjonen som skal være på hovedsiden! Så vår index
siden har 3 kolonner - men hva ville du fylle 3 kolonner med i en bestemt singel
side? Hva enn du vil! Selv om jeg vil foreslå innholdet i innlegget ... Så jeg går
å forklare hvordan page.php og single.php arbeid, i tilfelle du
ønsker å utvide temaet. Hvis du vil dele index.php i header, sidebar og
footer, gjør det nå! Ellers vil vi dampe ut:

  1. Åpne opp single.php.
  2. Kopier all koden fra index.php til single.php.
  3. Rull ned til du kommer til div # deres.
  4. Slett hele div. Mens du er i det, slett også det utpekte innlegget!
  5. Alt du burde ha forlatt er div # main.grid_5. Endre 5 til 9 for å kompensere
    for de 4 kolonnene vi bare ble kvitt.
  6. Ikke glem å endre end-div-kommentaren, slik at du ikke blir forvirret senere!

Så nå bør du ha en tom hovedkolonne. Vi skal fylle opp dette med a
vanlig sløyfe:

 

Skrevet under .

Naw ... Den vanlige gamle kjedelige sløyfen. Ta gjerne denne granen til det som helst
du vil at dine enkelt innlegg skal se ut. Dette gir grunnleggende
mal for WordPress å vise et enkelt innlegg.

Trinn 5 Del 2

Så det er et enkelt innlegg, men vi har fortsatt koblinger til single sider i
navigasjon og bunntekst. Hvis du klikker på dem, vil de returnere det samme som indeksen.
Ikke kult. Alt vi trenger å gjøre er å kopiere alt fra enkelt over til page.php,
og det skal være søtt. Lett va? Disse sidene skal se slik ut:

Wrap up

Så du har nettopp hatt et glimt på hva WP_Query kan gjøre. Jeg foreslår sterkt å besøke
Query posts docs siden, som har alle de samme parameterne som WP_Query. Du kan begrense sløyfen din til et bestemt innlegg ved hjelp av en hvilken som helst kombinasjon av parametrene skilt av a
&.

Jeg håper dere har hatt så mye moro som jeg har skapt et avis-tema!
Du kan se det endelige produktet her! Nyt!