WordPress Beginner tot Master, deel 2

Gedurende deze zesdelige beginners-tot-masterreeks zullen we de geavanceerde functies van WordPress gebruiken om ons eigen portfolio en blog te maken, compleet met een optiespagina, meerdere stijlen en ondersteuning voor de nieuwe WordPress 2.7-functies. Vandaag maken we onze startpagina-indeling.


Ook verkrijgbaar in deze serie:

  1. WordPress: Beginner tot Master, deel 1
  2. WordPress: Beginner tot Master, deel 2
  3. WordPress: van beginner tot meester, deel 3
  4. WordPress: Beginner tot Master, deel 4
  5. WordPress: Beginner tot Master, deel 5
  6. WordPress: van beginner tot meester, deel 6

Spring naar een sectie

  • Ermee beginnen
  •   - schets
  • header.php
  •   -
  •   - Kleurenschema's en stylesheets
  •   - div # hoofd
  •   - div # nav
  • Styling the Header
  •   - Algemene stijlen
  •   - Header Styling
  •   - Navigatie Styling
  •   - Wat kleur
  • Portfolio berichten
  • De startpagina
  •   - Schoonheidstherapie
  • Widgetised Area
  • footer
  • Samenvatting

Ermee beginnen

In dit deel zullen we de voorpagina van ons portfolio maken, gebruikmakend van onze optiepagina en de verwerking van aangepaste velden in berichten. Maak voordat u aan de slag gaat de volgende bestanden en mappen in de map / Wp-content / themes /innovatie/ map die u eerder hebt gemaakt:

  • / Inc /
    • / Cache /
  • header.php
  • footer.php
  • sidebar.php

Bewaar ook dit script van TimThumb PHP Image Resizer als thumb.php binnen in de / Inc / map. TimThumb is een 'slim' PHP-script voor het aanpassen van de resolutie door Darren Hoyt.

schets

Hieronder is een overzicht van hoe onze voorpagina er uit zal zien:


Onze header.php bestand bevat de #hoofd en #nav secties - inclusief de openingstags voor #wikkelen, #inhoud en .contentwrap.

footer.php bevat dan de #footer sectie en de afsluitende tags voor #inhoud en het laatste gedeelte erboven (dit zou kunnen zijn .contentwrap, .extraswrap of #sidebar afhankelijk van de pagina).

De .contentwrap gebied bevat de twee laatste berichten uit onze Portfolio-categorie, en .extraswrap zal een widget-klaar gebied zijn waar we widgets van het Dashboard kunnen plaatsen.


header.php

Aan de top van de header.php bestand, neem de volgende code op.

  >   <?php wp_title('«', true, 'right'); ?> <?php bloginfo('name'); ?>

Zoals u kunt zien, is dit voornamelijk de code die u bovenaan elk xHTML Strict-document zou opnemen, alleen hebben we enkele secties vervangen door een WordPress-functie die de juiste code zal uitvoeren, afhankelijk van de taal waarin WordPress draait

Aan het einde van de code staat ons title-tag, dat wederom WordPress-functies gebruikt om de naam van de huidige pagina te krijgen, en de naam van de site.

Kleurenschema's en stylesheets

Vervolgens nemen we onze style.css bestand met behulp van de WordPress bloginfo (); functie. Het is belangrijk om deze functie te gebruiken om het hoofdstijlblad op te nemen, in tegenstelling tot het rechtstreeks invoeren van het bestandspad.

 

Dan is de code voor het grijpen van de juiste kleurenschema-stylesheet geselecteerd uit de opties die we in het vorige gedeelte hebben gemaakt:

    

In de onderstaande tabel wordt uitgelegd wat de bovenstaande code doet:


We controleren of onze kleurenschema optie ($ ts_colourscheme) bestaat op de pagina Opties en is correct ingesteld (dus niet als "Kies een kleurenschema:"). Als de optie niet correct is ingesteld of niet bestaat, wordt standaard de optie gebruikt deepblue.css kleuren schema; anders gebruiken we de stylesheet die was geselecteerd op de pagina met opties.

Verder gaan we over onze RSS- en Atom-feeds en openen we de body-tag:

      

#hoofd


De volgende code is veel rechtlijniger dan het vorige gedeelte. Zoals te zien is in de bovenstaande afbeelding, zullen we meer WordPress-functies gebruiken om informatie uit de WordPress-database op te halen:

 

De bloginfo ( 'name'); en bloginfo (beschrijving); functies halen de relevante instellingen op via de pagina 'Algemene instellingen' in het WordPress-dashboard:


#nav


Het ophalen van een lijst met pagina's uit de database is ook heel eenvoudig. Wij gebruiken de wp_list_pages (); functie. Merk op dat we ook een title_li = arguement. Dit is om te voorkomen dat de functie een extra lijstitem genaamd 'Navigatie:' maakt voordat u de pagina's opslaat.

 

We hebben ook de relevante div's en wrappers voor de volgende sectie geopend.


Styling the Header

Als u nu naar uw WordPress-installatie gaat, ziet het er ongeveer zo uit:


Vergeet niet dat we alle kleurstijlen erin opnemen deepblue.css zodat we later eenvoudig verschillende kleurenschema's kunnen maken. Al het andere komt binnen style.css.

Algemene stijlen

Het eerste dat ik altijd in mijn stylesheet opneem, is een browser-reset, gevolgd door een basisstijl voor alinea's, lijsten, kopteksten en links.

 * opvulling: 0; marge: 0; body font-family: Arial, Helvetica, sans-serif;  p font-size: 0.9em; regelhoogte: 1.5em; margin-bottom: 10px;  ul, ol margin: 0 0 10px 10px;  li font-size: 0.9em; regelhoogte: 1.5em; lijst-stijl-positie: binnen; margin-bottom: 3px;  img border: none;  h1, h2, h3, h4, h5, h6 font-weight: normaal;  h3, h4 margin: 15px 0 2px 0;  h4, h5, h6 font-weight: bold;  a: link, a: visited text-decoration: none;  a: hover, a: active, a: focus text-decoration: onderstrepen; overzicht: geen; 

Dit zou best rechttoe rechtaan moeten zijn voor iedereen met een basiskennis van HTML en CSS. We hebben de marges en padding voor alle (*) elementen op 0 gezet om de standaardstijlen te overschrijven die elke browser op een pagina toepast. Vervolgens voegen we nieuwe marges, lettertypegrootten en lijnhoogten toe voor de belangrijkste elementen om de leesbaarheid tussen deze elementen te vergroten.

Header Styling

Vervolgens maken we een beetje een lay-out:

#wrap margin: 0 auto; breedte: 980 px;  #head margin: 25px 0; overloop verborgen;  #head h1 float: links; marge links: 20 px;  #head h3 font-family: Georgia, "Times New Roman", Times, serif; font-size: 0.8em; lettertype-stijl: cursief; zweven: rechts; regelhoogte: 1.7em; text-align: right; marge: 0 20px 0 0; breedte: 500 px; 

De #wikkelen element is de container die alles vasthoudt. We gebruiken een breedte van 980px (dit is ongeveer zo hoog als we kunnen gaan terwijl het nog steeds voldoet aan 1024x768-resoluties). En we hebben gebruikt marge: 0 auto; om het in de browser te centreren.

De titel en taglines (h1 en h3 respectievelijk) worden vervolgens naar beide zijden van de container gedreven.

#hoofd heeft een eigenschap van overloop verborgen; zodat het de zwevende elementen correct houdt. Typisch, zal een div zich niet wikkelen rond drijvende kinderen (zoals we hier hebben). Zie de afbeelding hieronder als een voorbeeld (het geel staat voor de toegewezen marge #hoofd):


Navigatie Styling

 #nav border-top-left-radius: 15px; border-top-right-radius: 15px; -moz-border-radius-topleft: 15px; -moz-border-radius-topright: 15px; -webkit-border-top-left-radius: 15px; -webkit-border-top-right-radius: 15px; border-bottom: none; beiden opschonen; opvulling: 0 20px; breedte: 939 px; 

Bekijk de voorbeeldafbeeldingen bovenaan de zelfstudie en u zult merken dat we afgeronde hoeken gebruiken bovenaan het navigatiegedeelte. In plaats van dit effect te bereiken via een aantal afbeeldingen en extra HTML-tags, gaan we de nieuwe CSS3 gebruiken border-radius eigenschap om een ​​straal van 15px aan beide bovenste hoeken te geven.

Huidige browsers ondersteunen deze eigenschap echter nog niet, maar Mozilla- en Webkit-gebaseerde browsers hebben die van zichzelf -moz-border-radius en -webkit-border-radius eigenschappen die we ook kunnen gebruiken om de afgeronde hoeken aan het werk te krijgen in Firefox 3, Safari en Chrome. Internet Explorer en Opera gebruiken eenvoudig een vierkante rand totdat ze worden ondersteund border-radius.

Opmerking: als u deze leverancierspecifieke eigenschappen in uw CSS gebruikt, stopt het valideren van uw stylesheet. Maar omdat het alleen deze zijn die de validatie stoppen - who cares?

Verderop, stylen we de lijstitems in de navigatie om inline (horizontaal) weer te geven:

 #nav ul margin: 0;  #nav ul li display: inline; lettergrootte: 1em; regelhoogte: 1.3em; margin-right: 25px;  #nav ul li a: link, #nav ul li a: visited display: -moz-inline-stack; weergave: inline-block; lettertype: vet; tekstdecoratie: geen; opvulling: 20px 10px;  #nav ul li a: hover, #nav ul li a: active, #nav ul li a: focus outline: none; 

Merk op dat we gebruiken weergave: -moz-inline-stack; op de links. Dit is puur voor Firefox 2 en lager, die (om wat voor reden dan ook) niet ondersteunen weergave: inline-block; - zelfs IE6 ondersteunt het!
We geven veel vulling aan de koppelingen om het klikbare gebied te vergroten (in tegenstelling tot het opvullen van de li in plaats daarvan).

Bekijk nu de pagina in uw browser en het zou er zo uit moeten zien. Beter, maar nu heeft het wat kleur nodig!


Wat kleur

Sla eerst de volgende afbeelding op in de / Stijlen / deepblue / map als bg.jpg.


En deze afbeelding in dezelfde map als trans.png (het is eigenlijk een donkere 1px semi-transparante afbeelding).


Nu open /styles/deepblue.css, en typ:

 / * Innovatie standaardstijl - deepblue.css * / body background: url ("deepblue / bg.jpg") no-repeat # 101010 top gecentreerd; kleur: # 333;  a: link, a: visited color: # 5c6e80;  #head h1 color: #eee;  #head h3 color: #ddd;  #nav background: url ("deepblue / trans.png") herhalen; rand: 1px vast # 111;  #nav ul li a: link, #nav ul li a: visited color: #ddd;  #nav ul li.current_page_item a: link, #nav ul li.current_page_item a: bezocht background: url ("deepblue / trans.png") herhalen; kleur: #eee;  #nav ul li a: hover, #nav ul li a: active, #nav ul li a: focus color: #eee; 

We hebben de grote achtergrondafbeelding ingesteld op de hoofdtekst (en hebben deze zo gemaakt dat deze niet beweegt wanneer u bladert), de transparante afbeelding wordt gebruikt als achtergrond voor de navigatie en we stellen ook een aantal lettertypekleuren in.
Bekijk een voorbeeld en je hebt nu iets als:



Portfolio berichten

Voordat we de bovenkant van onze startpagina maken waar onze twee nieuwste portfolio-items beschikbaar zijn, hebben we een paar berichten nodig om te testen. Het thema gebruikt een paar 'Aangepaste velden' om extra informatie weer te geven voor de portfolio-items:

  • datum (de datum waarop het werk is voltooid)
  • cliënt (voor wie het werk was)
  • link (naar een live versie van je werk)
  • voorvertoning (URL van een afbeelding van 930 px breed van uw werk)
  • Preview-full (grotere versie van het werk, wordt weergegeven in een lightbox)

Maak een nieuwe blogpost, waarbij de titel de naam van het project is (zoals in de afbeelding hierboven) en voer wat inhoud over het werk in. Plaats het bericht in uw categorie 'Portfolio'.

Voordat je het bericht opslaat, scrol je omlaag naar het gedeelte 'Aangepaste velden':


Voer hier alle aangepaste velden hierboven in. Alleen de voorvertoning veld is verplicht. U kunt de volgende afbeeldingen gebruiken voor uw voorvertoning veld als u er nog geen heeft (rechtsklikken en opslaan):


Nadat u de velden hebt ingevuld, kunt u het bericht publiceren. Herhaal dit proces totdat je ten minste twee berichten hebt (bij voorkeur meer).



De startpagina

Nu we aan alle vereisten voldoen, kunnen we eindelijk het hoofdgedeelte van de startpagina coderen. In page-home.php, typ het volgende:

 

laatste projecten

query_posts (); is een WordPress-functie voor het ophalen van specifieke berichten uit de database. Zoals je kunt zien in de argumenten voor de functie (de delen tussen haakjes), vertellen we WordPress dat je alleen 2 berichten uit de categorie Portfolio krijgt ($ ts_portfolio_cat krijgt de informatie van de pagina met opties die we hebben gemaakt).

Met terwijl();, we zijn begonnen met de 'WordPress Loop'. Hier kunnen we WordPress vertellen welk deel van elke post we nodig hebben.

 $ Teller ++; $ preview = get_post_meta ($ post-> ID, 'preview', true); $ date = get_post_meta ($ post-> ID, 'date', true); ?>

Op de eerste regel hebben we er een toegevoegd aan het loket (we zullen dit binnenkort gebruiken). $ Teller ++; is van korte hand om te schrijven $ teller = $ teller + 1;

We gebruiken dan de get_post_meta (); functies om onze aangepaste velden 'preview' en 'date' uit de post te krijgen - die in de $ voorvertoning en $ date variabelen.

 ">

Hierboven hebben we een div gemaakt met een werk klasse voor het portfolio-item dat moet worden bewaard. Maar merk op dat we dat ook controleren als onze $ teller is gelijk aan 2 (dit is het tweede portfolio-item), we voegen een andere klasse toe aan de div met de naam laatste. Deze les komt van pas als we dit gedeelte stylen.

Vervolgens voeren we de voorbeeldafbeelding uit:

 

Als er een voorbeeldafbeelding bestaat, dan zijn we ...

 "> <?php the_title(); ?>  

De the_permalink (); functie wordt gebruikt om de link naar het huidige bericht uit te voeren.

Vervolgens voeren we de voorbeeldafbeelding uit. Maar we gebruiken het ook via de TimThumb-resizer om het formaat van de afbeelding te wijzigen naar 450 px in de breedte en 210 px in hoogte (van de 930 px-afbeelding in werkelijkheid). Merk op hoe we gebruiken bloginfo (template_directory); om ervoor te zorgen dat WordPress onze themamap controleert (het is een equivilant van de TemplatePath we gebruikten in het vorige deel van de serie).

We moeten nu gewoon de tekstregel uitvoeren die onder de afbeelding (de titel en de datum) valt:

 

"> ($ Date)";?>

Dit is relatief eenvoudig. We gebruiken the_permalink (); om de link voor het huidige bericht te krijgen. de titel(); wordt gebruikt om de titel van het huidige bericht te krijgen.

We controleren vervolgens of een aangepast datumveld is ingevoerd (in de $ date variabele) voor deze post. Als dat zo is, voeren we het uit.

 

Ten slotte sluiten we de stroom af werk div, sluit de WordPress Loop met endwhile; en sluit de contentwrap div die in de header is gemaakt.

Schoonheidstherapie

Neem een ​​kijkje op de startpagina in je browser om dit prachtige meesterwerk te zien:


Ok, misschien niet; maar niets dat een beetje CSS niet kan repareren. Voeg het volgende toe style.css:

 #content -moz-border-radius-bottomleft: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-left-radius: 5px; -webkit-border-bottom-right-radius: 5px; grens-onder-links-radius: 5px; border-bottom-right-radius: 5px; zweven: links; opvulling: 19px 19px 30px 0; margin-bottom: 5px; overloop verborgen; breedte: 960 px;  .contentwrap padding-left: 19px; overloop verborgen;  #inhoud h2 font-weight: bold; letter-spacing: -1px; margin-bottom: 10px; 

#inhoud is het omhulsel dat alle hoofdinhoud bevat. We hebben afgeronde randen toegevoegd aan de onderkant, op dezelfde manier die we in de navigatie hebben gebruikt.

Binnen deepblue.css voeg het volgende toe om een ​​lichte achtergrondkleur aan toe te voegen #inhoud, en definieer de randkleur:

 #content background-colour: # f9f9f3; rand: 1px vast # 111; border-top: geen; 

Uiteraard moeten de items inline (naast elkaar) worden weergegeven. We doen dit door simpelweg in te stellen zweven: links; naar beide, samen met enkele marges binnenin style.css:


 .werk float: links; marge: 0 20px 40px 0; breedte: 460 px;  .work a outline: none;  .werk p font-size: 0.9em; lettertype: vet; marge: 8px 0 10px 0;  .worksingle p font-weight: normaal; . werkbereik font-size: 0.8em; font-gewicht: normaal; 

Bekijk een voorvertoning en u zult merken dat de items nog steeds onder elkaar worden weergegeven. Een snelle controle met Firebug onthult dat het tot het tweede item niet genoeg ruimte heeft voor de juiste marge.
Dit is waar die teller toevoegt class = "laatste" naar het tweede item komt binnen:

 .laatste margin-right: 0! important; 

We zijn nog niet helemaal klaar. Bekijk ons ​​uiteindelijke productbeeld van dichterbij, en u zult opmerken dat we ook een rand rondom de portfolio-afbeelding moeten instellen, die van kleur verandert tijdens zweven.
Voeg de volgende kleurstijlen toe aan deepblue.css:

 .werk a: link img, .work a: visited img border: 5px solid # e3e8ed;  .work a: hover img, .work a: active img, .work a: focus img border: 5px solid # 5c6e80;  .work a: link, .work a: visited color: # 333; 


Widgetised Area

De .extraswrap deel van de startpagina is klaar voor widgets (max. 3 widgets) - wat betekent dat we ze rechtstreeks vanuit het WordPress Dashboard kunnen toevoegen en beheren - net zoals u zou doen voor een widet-sidebar:


Ten eerste moeten we WordPress vertellen om een ​​nieuw widgetgebied te maken met behulp van de register_sidebar () functie. De volgende code gaat aan het einde van uw functions.php het dossier:

 if (function_exists ('register_sidebar')) register_sidebar (array ('name' => 'Homepage Bottom', 'before_widget' => '
',' after_widget '=>'
',' before_title '=>'

',' after_title '=>'

',));

Binnen register_sidebar () we passeren een array met wat informatie voor ons widget-gebied. De naam wordt gebruikt om het te identificeren wanneer we meerdere widget-gebieden (of zijbalken) hebben. before_widget en after_widget is de code die wordt gebruikt om elke afzonderlijke widget in te pakken. Standaard zou dit een lijstitem zijn; we gebruiken in plaats daarvan een div.
before_title en after_title is wat wordt gebruikt om de titel van de individuele widget in te pakken.

Om deze widget nu op onze startpagina op te nemen, voegt u het volgende toe aan het einde van page-home.php:

 
 

We openen eerst onze wrapping-div en gebruiken vervolgens de dynamic_sidebar (); functie - waardoor we de naam van het widget-gebied dat we eerder gebruikten, doorgeven bij het registreren van het gebied. Ten slotte nemen we onze footer.php bestand met behulp van de get_footer () functie (op dezelfde manier als de header).

Ga je gang en voeg drie testwidgets toe aan het gebied via Uiterlijk -> Widgets -> 'Homepage Bottom'.


En bekijk het:


Gebruik de volgende code om ze allemaal inline weer te geven style.css:

 .extrawrap margin-top: 10px; overloop verborgen;  .extras float: left; marge: 0 0 0 20px; breedte: 300 px; 

We gaan ook een Flickr & Twitter-plug-in stylen. Installeer eerst de FlickrRSS en Twitter voor WordPress-plug-ins.

Voer in Instellingen -> FlickrRSS uw Flickr ID-nummer in met behulp van de meegeleverde instructies (of gebruik de mijne: 31912870 @ N03), stel het in op 9 vierkante afbeeldingen; en voor de HTML Wrapper-sectie, gebruik:
Vóór afbeelding:


Na afbeelding:

Dit zal ons in staat stellen om de afbeeldingen gemakkelijk te stijlen en te positioneren.

Ga door en wissel twee widgets in het homepagegebied om naar de Flickr- en Twitter-gebieden (vergeet niet om je Twitter-gegevens in te voeren onder het gedeelte 'Bewerken' van de widget).



Voer de volgende stijl in in style.css:

 / * stijl FlickrRSS widget * / .flickr display: inline;  .flickr a: link img, .flickr a: visited img margin: 0 10px 10px 9px;  / * style Twitter widget * / ul.twitter margin: 0;  ul.twitter li.twitter-item -moz-border-radius: 10px; -webkit-border-radius: 10px; grensradius: 10px; lijststijl: geen; margin-bottom: 20px; opvulling: 8px 10px;  ul.twitter li.twitter-item span abbr border-bottom: none; weergave: blok; font-size: 0.8em; lettertype-stijl: cursief; margin-top: 3px; 

De Flickr-stijl geeft elke afbeelding inline weer en stelt de juiste marges in voor drie afbeeldingen per rij. In de Twitter-stijlen hebben we wat marge en opvulling toegevoegd om elke tweet te scheiden, en we hebben ook gebruikt border-radius nog een keer.

Voeg ook het volgende toe aan deepblue.css:

 .flickr a: link img, .flickr a: visited img border: 3px solid # e3e8ed;  .flickr a: hover img, .flickr a: active img, .flick a: focus img border: 3px solid # 5c6e80;  ul.twitter li.twitter-item background-color: # f6f5ed; border: 1px solid # eae9de; 

Elke Flickr-afbeelding heeft nu een rand waar we kunnen zweven, vergelijkbaar met wat we gebruikten voor de portfolio-afbeeldingen.



footer

Binnen footer.php plaats de volgende code. We sluiten de juiste tags en nemen een copyright-melding op. Voel je vrij om de vermelding van mezelf en NETTUTS ervan te verwijderen, hoewel het op prijs zou worden gesteld als je op de een of andere manier een link naar ons terugstuurde. We nemen ook de Google Analytics-code op vanaf de pagina met opties.

 

Copyright © . Ontwerp door Dan Harper voor NETTUTS. Mogelijk gemaakt door WordPress.

Voeg het volgende toe aan style.css:

 p.footer duidelijk: beide; font-size: 0.7em; lettertype-stijl: cursief; opvulling: 5px 20px; 

En naar deepblue.css:

 p.footer color: #ccc;  p.footer a: link, p.footer a: visited color: #ccc; border-bottom: 1px gestreept;  p.footer a: hover border-bottom: 1px solid; tekstdecoratie: geen; 

Samenvatting

Dat concludeert dag 2 van WordPress Week, en we hebben behoorlijk veel gedaan! Morgen gaan we naar de 'Blog'-paginalay-out en leren we hoe we' single posts 'anders kunnen stijlen, afhankelijk van de categorie waarin ze zich bevinden.

Deel 3 - Styling van de blog

Code