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.
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.
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.
Aan de top van de header.php
bestand, neem de volgende code op.
>
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.
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:
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');
enbloginfo (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 eentitle_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 binnenstyle.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 gebruiktmarge: 0 auto;
om het in de browser te centreren.De titel en taglines (
h1
enh3
respectievelijk) worden vervolgens naar beide zijden van de container gedreven.
#hoofd
heeft een eigenschap vanoverloop 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 ondersteundborder-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 ondersteunenweergave: 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 deli
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 alsbg.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 uwvoorvertoning
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 naamlaatste
. Deze les komt van pas als we dit gedeelte stylen.Vervolgens voeren we de voorbeeldafbeelding uit:
Als er een voorbeeldafbeelding bestaat, dan zijn we ...
">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 deTemplatePath
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 metendwhile;
en sluit decontentwrap
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 binneninstyle.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 toevoegtclass = "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 aandeepblue.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 uwfunctions.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. Denaam
wordt gebruikt om het te identificeren wanneer we meerdere widget-gebieden (of zijbalken) hebben.before_widget
enafter_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
enafter_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 onzefooter.php
bestand met behulp van deget_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;
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