Bouw een krantenthema met WP_Query en het 960 CSS Framework

WP_Query is een krachtig hulpmiddel om te bepalen wat er uit je lus komt. Vandaag ga ik je alles leren hoe je het kunt gebruiken om een ​​3-columned kranten-thema te maken met al je hoofdblogposten in de hoofdkolom en aan de zijkant een aantal berichten met een bepaalde categorie. We zullen de gebruiken 960 CSS-raamwerk voor de basis lay-out en reset van ons thema, zal het een hoop werk hakken van wat nodig is!

Voorwoord

Ons aanvalsplan is om alle berichten met een gedeelde toegewezen categorie te verwijderen, en
plaats ze opzij van de hoofdposten. We zullen ook naar een methode kijken
voor het maken van een 'featured post' zonder jQuery of JavaScript te gebruiken! Ik heb ook een .psd gegooid (met behulp van de sjablonen die je bij download hebt) van wat
we willen vandaag bereiken. Download de .psd hier.

We gaan ervan uit dat u een live WordPress-installatie hebt, ongeacht of deze lokaal of gehost is. Als je daar wat hulp bij nodig hebt, is het de moeite waard eerst te leren hoe je WordPress lokaal op Windows of OS X installeert.

Stap 1: De noodzaak

Alrighty. Dus afgezien van de overduidelijke behoefte aan een WordPress-installatie, gaan we
om nog een paar extra dingen nodig te hebben. Ik heb een heleboel bestanden die je nodig hebt
hebben in je themamap.

  • Alles moet binnen een themamap gaan wp-content / themes /, dus maak
    een map genaamd triColumnNews, en plaats alles wat erin staat!
  • 960 CSS Framework - Dit is ook nogal voor de hand liggend. In jouw triColumnNews
    map, maak een andere map met de naam 960. Ga naar
    960 Grid System en pak een kopie van het framework. In de download zul je
    zoek enkele mappen. Open de map met de toepasselijke naam 'code' en kopieer de 3 CSS-bestanden (960.css,
    reset.css en text.css) in de map 960 die u een seconde hebt gemaakt
    geleden. Dat is allemaal zoet nu.
  • functions.php - We hebben een zijbalk nodig, dus dat hebben we nodig functions.php
    om het te registreren.
  • afbeeldingen map - Nou duh ... Elk fatsoenlijk thema heeft een aantal afbeeldingen! creëren
    de mapafbeeldingen en plaats
    bodyBg.png en
    searchBg.png erin.
  • index.php - Een voor de hand liggend concept ... We zullen hier voornamelijk aan werken.
  • page.php en single.php - Onze indexpagina heeft 3 kolommen, toch? Maar
    Ik denk niet dat individuele pagina's 3 kolommen vereisen. We veranderen de subsjabloonpagina's
    helemaal aan het einde, zodat als je naar een pagina gaat, het niet allemaal warrig is vanwege de
    incorrect WP_Query op de index (onjuist voor de specifieke pagina, niet de index).
  • style.css
    - Kopieer dat over en bewerk het dienovereenkomstig als je wilt.

Heb je dat allemaal? Goed. Je zou nu klaar moeten zijn voor de rest van de tutorial! Vergeet niet
om het thema te activeren in WP-admin (wp-admin / themes.php).

Stap 2 - HTML en basis- WordPress Code

Ik ga je nog niet alle WordPress-code geven. Ik ga je geven
alle WordPress-code die u nodig hebt, met uitzondering van de WP_Query's. Ze zullen een stap in doen
van henzelf, omdat ze zeker uitleg nodig hebben! Het zou ook de pagina WEG vullen
veel, dus ik heb het allemaal in een .txt opgenomen in plaats van hier.
Download het en kopieer het naar index.php. Of typ het, wat het ook uitkomt. Typen
helpt je herinneren wat je doet!

Sommige dingen om op te merken

Dat is een heleboel code om te verwerken, dus ik zal gewoon de interessante delen eruit halen
voor jou, en leg ze uit.

  • hoofd - Dit zijn allemaal gewoon WordPress-dingen. Stylesheet, RSS2-koppeling en enkele
    WP dingen.
  • #datum en tijd - Heb je ooit een krant gelezen die de datum niet heeft?
    bovenaan? Ik ook niet. Laten we nu niet beginnen, hm? Hiermee wordt de datum in de indeling weergegeven:
    (Do 17 juli 08). We zweven zo naar boven dat deze in het browservenster blijft
    altijd! Daarom…
  • het formulier - Dit is het zoekformulier voor de blog! Ik ben gewoon blijven hangen
    een in om de ruimte te vullen en des te overtuigender te maken!
  • dynamic_sidebar - Dat verklaart het in feite ... Het is de sidebar die we willen,
    genaamd triNews, zodat het kan worden geïdentificeerd in Dashboard.
  • Notitie - Je kunt zien dat het al begint vorm te krijgen in
    termen van lay-out (een zeer squewif lay-out, maar niet de reset!) - Ik heb de geïmporteerde
    960 bestanden gebruiken een @import in style.css om HTTP-verzoeken op te slaan, en het geeft ook
    onze code bovenliggende macht over de 960-code.
  • Alle kleine grappige klassen ... Lees verder.

De 960 klassen

Dus ik wed dat je al deze kleine 'grid_5' en 'container_12' klassen opmerkt en
gaan, wat is dat nou? Laat me het je uitleggen. Het nummer na 'grid_'
is het aantal kolommen dat we willen dat div selecteert. Omdat we 12 kolommen willen,
we verpakken het hele ding (met div # wrapper) met de klasse 'container_12'.
In de standaard CSS die ik je heb gegeven, heeft deze de invoer voor de drie 960-bestanden,
dus we hebben al een halve lay-out als we helemaal geen CSS hebben gecodeerd!

Dit ziet er niet al te opzichtig uit. Het is niet gestileerd en heeft zelfs geen inhoud:

Stap 3 - WP_Querys

Dit is waar alle magie gebeurt! Wij hebben drie WP_Querys:

  • theirNews - Dus we hebben verdeeld nieuws, toch? We willen alleen dit gedeelte
    toon berichten met de categorie 'hunNieuws'. Van mijn kant (van mijn testblog) die ik heb gegeven
    ongeveer 7 van mijn berichten in deze categorie. Je moet ze ook wat geven. Je hebt ook nodig
    om de categorie-ID van hunNieuwscategorie te vinden, maar ik zal je snel doornemen
    hoe dat later te vinden.
  • Aanbevolen - Vergeet niet dat ik heb gezegd dat ik je laat zien hoe je een aanbevolen bericht zonder kunt maken
    jQuery? Hier is de oplossing in een notendop: laat alleen het meest recente bericht tot nu toe zien
    in zijn eigen query-loop.
  • hoofd - de truc hierbij is dat we de categorie van hun nieuws niet willen
    hierbinnen, noch willen we de eerste post. Het is gemakkelijk, je zult het zo meteen zien.

Stap 3: 1 - theirNews

Dus we willen een kolom met WordPress-inhoud uit slechts één categorie. Hoe doen we
doe dat? De ... gebruiken groot reeks parameters die WP_Query ons biedt
met, het is gemakkelijk om dit te doen. Vervang de hunNews-opmerking in index.php door:

zoekopdracht (categorie_naam = theirNews & showposts = 7); while ($ theirNews-> have_posts ()): $ theirNews-> the_post (); ?>  

Query! Laten we er meteen in springen.

  • $ theirNews is de variabele vraag die we zullen gebruiken voor de 'hunNieuws'-sectie.
    Dit definieert een nieuwe query, de hele basis van WP_Query.
  • vraag (); - Dit zijn onze specifieke parameters. We willen alleen maximaal laten zien
    7 berichten, allemaal onder de categorienaam 'hunNieuws'. U kunt deze variabelen wijzigen
    rond natuurlijk, 7 is alleen het aantal berichten waaraan ik de categorie heb toegewezen.
  • De rest van de code is een verkorte lus, die is opgegeven met behulp van onze $ theirNews
    veranderlijk.

We hebben een specifieke luscode nodig.

 

Lees het volledige artikel '); ?>

Gewoon de titel ingepakt in a h4 tag, met de inhoud ingepakt in een div
geklasseerde 'invoer'. Super goed! Je hebt je eerste WP_Query uit de 3 gedaan, dat zou wel moeten
toon nu alleen categorieën met de naam 'hunNieuws'

Stap 3: 2 - Aanbevolen

We willen alleen 1 bericht laten zien, dat heeft niet de categorie 'hun nieuws'. 1 maar.
Omdat je nu de basisprincipes van WP_Query begrijpt, zal ik je de volledige code geven
(vervang de FEATURED POST-opmerking door):

vraag ( 'showposts = 1 & cat = -59'); while ($ featured-> have_posts ()): $ featured-> the_post (); ?>

Geplaatst onder .

Deze is onze featured post, dus ik heb toepasselijk de div 'featuredPost' genoemd,
maar omdat we straks ook stijlen van reguliere posts willen hebben, heb ik de
klasse 'post'.

Dezelfde deal met de WP_Query. Deze keer tonen de parameters slechts 1 berichten die dat niet zijn
uit de categorie 59. Categorie 59 is de ID van de categorie 'hunNieuws'. ik heb nodig
om je te vertellen hoe je het kunt krijgen!

  1. Open WP-Admin.
  2. Klik op beheren.
  3. Klik op Categorieën.
  4. Klik op de categorie 'hunNieuws' (of hoe je het ook noemt).
  5. Controleer de URL van de pagina. Het zou ongeveer zo moeten zijn:

    Kijk hoe het werkt & Cat_id = 59 aan het einde? Dit is je categorienummer.
    De mijne is 59, zorg ervoor dat u deze wijzigt in de ID van uw 'hunNieuws'-categorie!

  6. Onthoud dat nummer, we hebben het ook in de volgende query nodig.

Het verschil met de aanbevolen post is voornamelijk de h2. Omdat het de
op een na grootste koptekst op de pagina. Verderop in de 'hunNieuws'-sectie wikkelden we ons in
in in a h4 element, omdat het na de hoofdkolom de
volgende koptekst op de pagina. Alles ter styling.

Stap 3: 3 - hoofd

Onze laatste WP_Query. Deze zal zijn allemaal berichten met uitzondering van geplaatste berichten
door de 'hunNieuws'-categorie (je hebt de ID nodig. De mijne was 59, kan je de jouwe herinneren?).
Maar omdat we al het eerste bericht in het algemeen weergeven (de functie
post), we willen het niet nog een keer laten zien, toch? Dus we moeten de berichten compenseren met
1 - eenvoudig te maken met de krachtige parameters van WP_Query. Vervang de MAIN WP QUERY-opmerking
in index.php met dit:

zoekopdracht (posts_per_page = 5 & offset = 1 & cat = -59 '); while ($ main-> have_posts ()): $ main-> the_post (); ?> 

Geplaatst onder .
Lees het volledige artikel '); ?>
  • posts_per_page - Is precies wat het is ... Wanneer u begint met het toevoegen van de volgende
    en vorige pagina's heeft voorrang op wat u hebt ingesteld in WP-Admin. Ik heb er 3 als standaard,
    en kon niet gehinderd worden veranderend dus maakte ik het 5 voor de hoofdkolom.
  • compenseren - Weet je nog hoe ik zei dat we het eerste bericht niet moeten laten zien, want
    we hebben het al in het gedeelte met aanbevolen berichten.
  • cat = -59 - We moeten opgeven welke categorie niet moet worden opgenomen: hunNieuws
    - en voor mij heeft het de ID van 59. De '-' vlak voordat het nummer in principe telt
    voor uitsluiting.

Dat is dus alle HTML- en WordPress-code die we nodig hebben. Het ziet er nog steeds standaard uit, maar
het zal de algemene indeling met 3 kolommen hebben die we zoeken!

Stap 4 - CSS

Nu, omdat al onze lay-out vrijwel klaar is, is het voornamelijk alleen styling dat is
nodig zijn! Download
al deze CSS, en plak het in je style.css. Er zijn een paar dingen die
overschrijven de standaard 960-code. We hoeven het niet te gebruiken !BELANGRIJK omdat
de nieuwe code staat eigenlijk hoger op de hiërarchische ladder dan de 960-code. Wij
gebruik de 960-code als een soort 'basis' waaruit we bouwen. Als je de
fundamenten van een huis, zie je nog steeds de ruwe fundamenten? Deze 'decoratie'
is voornamelijk op kopteksten, maar sommige algemene opmaak wordt gebruikt voor tekstinhoud enz. Een
belangrijke overschrijving is het hoofdlettertype. We specificeren Georgia, wanneer de standaard is
Helvetica. Lettertypen zijn helemaal naar jouw voorkeur, ik heb zojuist Georgië gebruikt
anders! Nadat je alle CSS hebt geplakt en gelezen, zou de voorpagina dat moeten doen
zie er compleet uit!


Stap 5 - Sub sjabloonbestanden (optioneel)

Ik neem alleen dit gedeelte op, dus ik krijg geen ontelbare vragen waarin ik vraag waarom het individu is
pagina's retourneren de informatie die op de hoofdpagina zou moeten staan! Zo onze inhoudsopgave
pagina heeft 3 kolommen - Maar wat zou je 3 kolommen invullen in een specifieke single
pagina? Wat je wilt! Hoewel ik de inhoud van de post zou voorstellen ... Dus ik ga
om uit te leggen hoe page.php en single.php werk, voor het geval u
wil het thema verlengen. Als u index.php in header, sidebar en wilt splitsen
voettekst, doe dat nu! Anders stomen we verder:

  1. Open single.php.
  2. Kopieer alle code van index.php naar single.php.
  3. Blader naar beneden totdat u aankomt div # theirs.
  4. Verwijder de hele div. Als je toch bezig bent, verwijder dan ook het aanbevolen bericht!
  5. Het enige wat je nog zou moeten hebben is div # main.grid_5. Verander de 5 in een 9 om te compenseren
    voor de 4 kolommen die we zojuist hebben verwijderd.
  6. Vergeet niet om de opmerking van de einddeling te wijzigen, zodat u later niet in de war raakt!

Dus nu zou je een lege hoofdkolom moeten hebben. We gaan dit vullen met a
normale lus:

 

Geplaatst onder .

Naw ... De gewone oude saaie lus. Voel je vrij om deze enkele pagina naar wat dan ook te vuren
u wil dat uw afzonderlijke berichten er uitzien. Dit levert de basis
sjabloon voor WordPress om één bericht weer te geven.

Stap 5 Deel 2

Dus dat is een enkele post, maar we hebben nog steeds links naar single pagina's in de
navigatie en voettekst. Als u erop klikt, keren ze hetzelfde terug als de index.
Niet cool. Het enige wat we echter moeten doen, is alles kopiëren van single over naar page.php,
en het zou zoet moeten zijn. Makkelijk he? Deze pagina's zouden er ongeveer zo uit moeten zien:

Afronden

Dus je hebt net een glimp opgevangen van wat WP_Query kan doen. Ik raad ten sterkste aan om te bezoeken
de Documenten-pagina Query-berichten, die dezelfde parameters heeft als WP_Query. Je kunt je lus verfijnen tot elke specifieke post met elke combinatie van de parameters gescheiden door een
&.

Ik hoop dat jullie net zoveel plezier hebben gehad als ik een krantenkijkend thema heb gemaakt!
Je kunt het uiteindelijke product hier bekijken! Genieten!