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 zullen we onze blogberichten opmaken en 'enkele berichten' stijlen op basis van categorie.
Vandaag gaan we onze aandacht richten op het bloggedeelte van het thema. We coderen de belangrijkste 'blog'-weergave, maken de zijbalk en eindigen met de enkele berichtweergave.
De code voor de hoofdblogweergave zit erin index.php
. Dit is de pagina waarop al onze blogberichten worden weergegeven, met links naar hun hoofd- / enkele weergave, waar u de post gewoonlijk zult voortzetten en gebruikers de mogelijkheid biedt om te reageren.
Hieronder ziet u een voorbeeld van hoe de lay-out voor alle blogsecties eruit zal zien, met de zijbalk aan de rechterkant:
Laten we beginnen. In index.php
voer de volgende code in. We beginnen met het toevoegen van onze header-pagina en maken vervolgens onze div # mainarea
die, zoals je kunt zien in de eerste afbeelding, de blogberichten zal bevatten (met de zijbalk rechts).
Voeg het volgende toe aan
style.css
instellen#hoofdgebied
met de juiste stijlen:#mainarea float: left; opvulling rechts: 30px; breedte: 690 px;De WordPress Loop
Vervolgens starten we een WordPress Loop met enkele aangepaste criteria:
De eerste regel stelt ons in staat om paginering te gebruiken in de WordPress-lus - dwz. vertel de lus om alleen x-berichten te bevatten en toon vervolgens een 'Nieuwere berichten'-link naar het volgende lot. De code controleert of de huidige pagina om een bepaalde paginapagina vraagt, als dat niet het eerste is.
Binnen
query_posts ()
we specificeren om paginering te gebruiken; en vertel de lus ook om berichten uit onze Portfolio-categorie uit te sluiten (let op het minteken).De volgende is de code in de lus. Zoals vermeld in Dag 2, zal alles in de lus worden uitgevoerd voor elke beschikbare post.
"title =" Ga door met lezen """>
- #commentaar ">
We beginnen met het opnemen van elke post binnen zijn eigen div. We gebruiken
het ID()
om elke div een unieke ID te geven (voor het geval je ooit een specifieke post anders moet stylen); en we hebben elk ook een klasse gegevenblogpost
om gestileerd te worden.Vervolgens wordt de berichttitel uitgevoerd met
de titel()
enthe_permalink ()
wordt gebruikt om de link naar de volledige post op te nemen.Binnen
ul.meta
is wat extra informatie voor de post.the_category ()
wordt gebruikt om de namen uit te voeren van de categorieën waaraan het bericht is toegewezen (gescheiden door een komma).Vervolgens linken we naar de opmerkingen voor de post, opnieuw met behulp van
the_permalink ()
, encomments_number ()
wordt gebruikt om het aantal reacties voor het bericht uit te voeren.
de tijd()
geeft de datum aan waarop het bericht is gepubliceerd.F jS
is een PHP-datumcode voor 'maandnaam' (J); 'Datum' (j) en het achtervoegsel (dwz 'st', 'nd', 'rd' of 'th') (S).
Dit zou bijvoorbeeld Janauary 31st produceren. Je zou ook kunnen toevoegenY
tot het einde om het jaar af te leveren. Zie de handleiding PHP: date () voor meer informatie.Ten slotte wordt de feitelijke inhoud van het bericht voor de post uitgevoerd met behulp van
de inhoud()
. De link 'Meer lezen' wordt automatisch toegevoegd aan het bericht, indien nodig.Vervolgens sluiten we de Loop met
endwhile
, en omvatten de paginatieknoppen om door oudere / nieuwere berichten te bladeren (dat is waar onze$ opgeroepen
code komt nuttig) met behulp van denext_posts_link ()
enprevious_posts_link ()
functies:We hebben ook onze
sidebar.php
enfooter.php
bestanden.styling
Bekijk een voorbeeld van de blogpagina in uw browser. Ik heb al een extra bericht toegevoegd met enkele voorbeeldgegevens. De onderstaande afbeelding laat zien wat we moeten veranderen:
Gooi het volgende erin
style.css
. We voegen een scheiding toe tussen elke blogpost (.blogpost
) en stel deul.meta
items om inline weer te geven. De.alignleft
,.rechts uitlijnen
en.aligncenter
klassen zijn ook ingesteld - deze klassen worden gebruikt door WordPress om afbeeldingen uit te lijnen, en wordt ook gebruikt op onze paginering..blogpost duidelijk: beide; margin-bottom: 45px; padding-bodem: 40px; overloop verborgen; .singleblog overflow: hidden; ul.meta margin: 0 0 25px 0; ul.meta li display: inline; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 0.7em; regelhoogte: 1.3em; margin-right: 10px; padding-links: 12px; text-transform: hoofdletters; ul.meta li: first-child border: none; opvulling links: 0; .alignleft float: left; marge: 0 10px 8px 0; .alignright float: right; marge: 0 0 8 px 10 px; .aligncenter margin: 10px auto;In
deepblue.css
voeg een dunne, lichte rand toe tussen elk blogbericht, een rand om elk item van de meta-lijst te scheiden en stel de H2 in op # 333:.blogpost, .worksearch border-bottom: 1px solid # e8e3c8; h2 a: link, h2 a: visited color: # 333; ul.meta li border-left: 1px solid # e3e8ed;
sidebar
De zijbalk ziet er als volgt uit en wordt overal op de site gebruikt, behalve de front- en portfolio-pagina's:
Registreer zijbalk
Allereerst moeten we het zijbalk-widgetgebied registreren - dit gebeurt op dezelfde manier als het gebied op de startpagina. Binnen
functions.php
en de volgende code tussen de haakjes voorif (function_exists ('register_sidebar'))
na de startpagina-array:register_sidebar (array ('name' => 'Sidebar', 'before_widget' => '',' after_widget '=>' ',' before_title '=>'',' after_title '=>'
',));Met andere woorden, het zou er als volgt uit moeten zien:
if (function_exists ('register_sidebar')) register_sidebar (array ('name' => 'Homepage Bottom', 'before_widget' => '',' after_widget '=>'',' before_title '=>'',' after_title '=>'
',)); register_sidebar (array ('name' => 'Sidebar', 'before_widget' => '',' after_widget '=>' ',' before_title '=>'',' after_title '=>'
',));Toon de zijbalk
Maak vervolgens de zijbalk weer door het volgende toe te voegen
sidebar.php
:
En zorg ervoor dat de Zijbalk aan de rechterkant van de pagina blijft plakken door de breedte in te stellen style.css
:
#sidebar float: left; breedte: 220 px; #sidebar ul margin: 0; #sidebar ul li list-style: none; marge links: 0; margin-bottom: 25px;
Voeg vanuit je dashboard enkele widgets toe aan de 'Zijbalk'-optie en bekijk er een voorbeeld van:
Voeg de volgende stijlen toe aan style.css
om een structuur te maken voor elke sidebar-widget:
li h3 font-size: 1.3em; regelhoogte: 1,4em; marge: 5px 0 5px 0; / * Sidebar-zoekformulier * / #sidebar ul li # search margin-bottom: 25px; .hidden display: none; #sidebar ul li # zoekformulier #s opvulling: 7px 29px 7px 7px; breedte: 182 px; #sidebar ul li # zoekformulier #searchsubmit display: none; / * Sidebar-lijsten (bijv. Meta, Archieven, Categorieën) * / #sidebar ul li ul opvulling: 15px 5px 15px 8px; #sidebar ul li ul li list-style-position: outside; marge: 0 0 5px 20px;
Sla de onderstaande twee afbeeldingen op als bullet.gif
en search.png
in uw / Stijlen / deepblue /
map (de afbeeldingen hieronder zijn verkleind, maar zullen correct zijn als ze worden opgeslagen):
Voeg het volgende toe aan deepblue.css
. We gebruiken de twee afbeeldingen op hun respectieve elementen en stellen achtergrond- en randkleuren in voor widget-elementen.
#sidebar ul li # zoekformulier #s background: url ("deepblue / search.png") no-repeat right # f6f6ec; rand: 1px vast # E8E3C8; #sidebar ul li # zoekformulier #s: focus border: 1px solid # dad4b6; #sidebar ul li ul background-colour: # f6f6ec; rand: 1px vast # E8E3C8; #sidebar ul li ul li list-style: url ("deepblue / bullet.gif"); #sidebar ul li a: link, #sidebar ul li a: visited color: # 333;
WordPress gebruikt de single.php
bestand voor het weergeven van een enkele post - ie. het hele bericht, waar bezoekers reacties kunnen plaatsen enz. Omdat er echter twee soorten berichten zijn die we weergeven: Portfolio-items en blogberichten, beide hebben hun eigen lay-out nodig op de enkele berichtpagina, en daarom moeten we een onderscheid maken tussen hen.
Maak een single.php
bestand en voeg de volgende code toe:
post; if (in_category ("$ ts_portfolio_cat")) / * Is een portfolio-item * / require ('single-portfolio.php'); else / * Is een blogbericht * / require ('single-blog.php'); ?>
We gebruiken WordPress ' in_category ()
functie om te controleren of de weer te geven post is toegewezen aan de categorie Portfolio. Als dat zo is, hebben we de single-portfolio.php
het dossier.
Als dit niet in de categorie Portfolio staat, dan single-blog.php
is gebruikt.
Vandaag maken we alleen de single-blog.php
het dossier. De enkele portfolio-pagina wordt in het volgende deel van de serie gemaakt.
- the_category(', ') ?>
- #commentaar "> comments_number('No Comments', '1 Comment', '% Comments'); ?>
- the_time('F jS') ?>
Je zult merken dat dit erg lijkt op de code die we gebruikten
index.php
, maar met een paar uitzonderingen:
- Wij gebruiken
if (have_posts ())
in plaats vanquery_posts ()
. Dit is de standaard WordPress-lus.- We hebben het opmerkingenveld opgenomen met behulp van
comments_template ()
.Klik op je blog op een bericht en je zou naar de enkele berichtpagina moeten gaan. U ziet mogelijk ook dat het standaardcommentaargebied automatisch is opgenomen, omdat we onze eigen opmerkingen nog niet hebben gemaakt.
We zullen een aangepaste reactiesjabloon maken in deel vijf.
Samenvatting
Kom morgen terug als we onze Portfolio-pagina's gaan maken. (Deel 4)