In questa serie da sei a principianti a master, utilizzeremo le funzionalità avanzate di WordPress per creare il nostro portfolio e blog, completo di una pagina di opzioni, più stili e supporto per le nuove funzionalità di WordPress 2.7. Oggi stiamo creando il layout della nostra home page.
In questa parte, creeremo la prima pagina per il nostro portfolio, facendo uso della nostra pagina delle opzioni e gestendo i campi personalizzati nei post. Prima di iniziare, crea i seguenti file e cartelle all'interno del / Wp-content / themes /innovazione/
cartella creata in precedenza:
/ Inc /
/ Cache /
header.php
footer.php
sidebar.php
Salva anche questo script TimThumb PHP Image Resizer come thumb.php
dentro il / Inc /
cartella. TimThumb è uno script di ridimensionamento delle immagini PHP "intelligente" di Darren Hoyt.
Di seguito è riportata una panoramica di come apparirà la nostra frontpage:
Nostro header.php
il file conterrà il #capo
e #nav
sezioni - compresi i tag di apertura per #wrap
, #soddisfare
e .contentwrap
.
footer.php
conterrà quindi il #footer
sezione e i tag di chiusura per #soddisfare
e l'ultima sezione sopra di esso (questo potrebbe essere o .contentwrap
, .extraswrap
o #sidebar
a seconda della pagina).
Il .contentwrap
area terrà gli ultimi due post dalla nostra categoria Portfolio, e .extraswrap
sarà un'area pronta per i widget in cui possiamo posizionare i widget dalla Dashboard.
Nella parte superiore del header.php
file, includere il seguente codice.
>
Come puoi vedere, questo è principalmente il codice che devi includere nella parte superiore di qualsiasi documento XHTML Strict, solo che abbiamo sostituito alcune sezioni con una funzione di WordPress che emetterà il codice appropriato a seconda della lingua in cui WordPress è in esecuzione
Alla fine del codice c'è il nostro tag title che, di nuovo, usa le funzioni di WordPress per ottenere il nome della pagina corrente e il nome del sito.
Successivamente, includiamo il nostro style.css
file usando WordPress bloginfo ();
funzione. È importante utilizzare questa funzione per includere il foglio di stile principale, anziché entrare direttamente nel percorso del file.
Quindi è il codice per afferrare il corretto foglio di stile del colore selezionato dalle Opzioni che abbiamo creato nella parte precedente:
Il grafico seguente spiega cosa fa il codice sopra riportato:
Controlliamo se la nostra opzione di schema colori ($ ts_colourscheme
) esiste dalla pagina delle opzioni, e che è stato impostato correttamente (cioè non lasciato come "Scegli una combinazione di colori:"). Se l'opzione non è impostata correttamente o non esiste, per impostazione predefinita verrà utilizzata l'opzione deepblue.css
schema colore; altrimenti usiamo il foglio di stile che è stato selezionato dalla pagina delle opzioni.
Proseguendo, includiamo i nostri feed RSS e Atom e apriamo il tag body:
Il prossimo codice è molto più diretto rispetto alla sezione precedente. Come mostrato nell'immagine sopra, useremo più funzioni di WordPress per recuperare informazioni dal database di WordPress:
Il
bloginfo ( 'name');
ebloginfo ( 'descrizione');
le funzioni recuperano le impostazioni pertinenti dalla pagina "Impostazioni generali" nel dashboard di WordPress:
#nav
Anche recuperare un elenco di pagine dal database è molto semplice. Noi usiamo il
wp_list_pages ();
funzione. Nota che includiamo anche atitle_li =
arguement. Questo per impedire alla funzione di creare un elemento di elenco extra chiamato 'Navigazione:' prima di elencare le pagine.
Abbiamo anche aperto i relativi div e wrapper per la sezione successiva.
Disegnare l'intestazione
Se goto la tua installazione di WordPress ora, sarà simile a questa:
Ricorda che includeremo tutti gli stili di colore all'interno
deepblue.css
in modo che possiamo facilmente creare diversi schemi di colore in seguito. Tutto il resto andrà astyle.css
.Stili generali
La prima cosa che includo sempre nel mio foglio di stile è la reimpostazione del browser, seguita da alcuni stili di base per paragrafi, elenchi, intestazioni e collegamenti.
* padding: 0; margin: 0; body font-family: Arial, Helvetica, sans-serif; p font-size: 0.9em; line-height: 1.5em; margin-bottom: 10px; ul, ol margin: 0 0 10px 10px; li dimensione carattere: 0.9em; line-height: 1.5em; list-style-position: inside; margin-bottom: 3px; img border: none; h1, h2, h3, h4, h5, h6 carattere-peso: normale; h3, h4 margine: 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: underline; contorni: nessuno;Questo dovrebbe apparire molto semplice per chiunque abbia una conoscenza di base di HTML e CSS. Abbiamo impostato i margini e il riempimento per tutti gli elementi (*) su 0 per superare gli stili predefiniti che ciascun browser applica a una pagina. Includiamo quindi nuovi margini, dimensioni dei caratteri e altezza delle righe per gli elementi principali per aumentare la leggibilità tra di essi.
Intestazione
Successivamente, creiamo un po 'di layout:
#wrap margin: 0 auto; larghezza: 980 px; #head margin: 25px 0; overflow: nascosto; #head h1 float: left; margin-left: 20px; #head h3 font-family: Georgia, "Times New Roman", Times, serif; font-size: 0.8em; stile di carattere: corsivo; float: giusto; line-height: 1.7em; allineamento del testo: giusto; margine: 0 20px 0 0; larghezza: 500 px;Il
#wrap
l'elemento è il contenitore che contiene tutto. Stiamo usando una larghezza di 980px (questo è all'incirca il più alto possibile, pur rimanendo accomodante per risoluzioni 1024x768). E noi abbiamo usatomargine: 0 auto;
per centrarlo nel browser.Il titolo e gli slogan (
h1
eh3
rispettivamente) vengono fatti galleggiare su entrambi i lati del contenitore.
#capo
ha una proprietà dioverflow: nascosto;
in modo che trattiene correttamente gli elementi flottanti. In genere, un div non si avvolge attorno ai bambini fluttuanti (come abbiamo qui). Vedere l'immagine sotto come un esempio (il giallo rappresenta il margine assegnato a#capo
):
Stile di navigazione
#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: nessuno; chiaro: entrambi; imbottitura: 0 20px; larghezza: 939 px;Dai un'occhiata alle immagini di anteprima nella parte superiore del tutorial e noterai che utilizziamo gli angoli arrotondati nella parte superiore della sezione di navigazione. Invece di ottenere questo effetto attraverso un mucchio di immagini e tag HTML extra, useremo il nuovo CSS3
border-radius
proprietà per dare un raggio di 15px ad entrambi gli angoli superiori.Tuttavia, i browser correnti non supportano ancora questa proprietà, ma i browser basati su Mozilla e Webkit ne hanno uno proprio
-moz-border-radius
e-webkit-border-radius
proprietà che possiamo anche usare per ottenere gli angoli arrotondati per lavorare in Firefox 3, Safari e Chrome. Internet Explorer e Opera useranno semplicemente un bordo quadrato finché non supportanoborder-radius
.Nota: l'utilizzo di queste proprietà specifiche del fornitore nel CSS non consente la convalida del foglio di stile. Ma dal momento che saranno solo questi che fermeranno la validazione - a chi importa?
Continuando, modifichiamo gli elementi della lista nella navigazione per visualizzare inline (orizzontalmente):
#nav ul margin: 0; #nav ul li display: inline; dimensione carattere: 1em; line-height: 1.3em; margin-right: 25px; #nav ul li a: link, #nav ul li a: visited display: -moz-inline-stack; display: blocco in linea; font-weight: bold; decorazione del testo: nessuna; imbottitura: 20px 10px; #nav ul li a: hover, #nav ul li a: active, #nav ul li a: focus outline: none;Nota che stiamo usando
display: -moz-inline-stack;
sui collegamenti. Questo è puramente per Firefox 2 e seguenti, che (per qualche motivo) non supportanodisplay: blocco in linea;
- anche IE6 lo supporta!
Stiamo dando un sacco di padding ai link per aumentare l'area cliccabile (al contrario di riempire ilLi
anziché).Ora dai un'occhiata alla pagina nel tuo browser e dovrebbe apparire così. Meglio, ma ora ha bisogno di un po 'di colore!
Un po 'di colore
Innanzitutto, salva la seguente immagine nel
/ Stili / deepblue /
cartella comebg.jpg
.
E questa immagine nella stessa cartella di
trans.png
(in realtà è un'immagine semitrasparente 1px scura).
Ora aperto
/styles/deepblue.css
, e scrivi:/ * Stile di default dell'innovazione - deepblue.css * / body background: url ("deepblue / bg.jpg") no-repeat n. 101010 top center fixed; colore: # 333; a: link, a: visited color: # 5c6e80; #head h1 color: #eee; #head h3 color: #ddd; ripetizione #nav background: url ("deepblue / trans.png"); border: 1px solid # 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: visited background: url ("deepblue / trans.png") ripetizione; color: #eee; #nav ul li a: hover, #nav ul li a: attivo, #nav ul li a: focus color: #eee;Abbiamo impostato la grande immagine di sfondo sul corpo (e l'abbiamo aggiustata in modo che non si muova quando scorri), l'immagine trasparente viene usata come sfondo per la navigazione e abbiamo anche impostato alcuni colori dei caratteri.
Visualizzalo in anteprima e ora avrai qualcosa di simile a:
Portfolio Post
Prima di creare la parte superiore della nostra home page in cui sono presenti i nostri ultimi due elementi del portfolio, avremo bisogno di alcuni post da testare. Il tema utilizzerà alcuni "campi personalizzati" per visualizzare informazioni aggiuntive per gli elementi del portfolio:
Data
(la data in cui il lavoro è stato completato)cliente
(per chi era il lavoro)collegamento
(a una versione live del tuo lavoro)anteprima
(URL di un'immagine di larghezza 930px del tuo lavoro)Anteprima-pieno
(versione più grande del lavoro, verrà visualizzata in una lightbox)
Crea un nuovo post sul blog, con il titolo come nome del progetto (come nell'immagine sopra) e inserisci del contenuto sul lavoro. Inserisci il post nella categoria 'Portfolio'.
Prima di salvare il post, scorri verso il basso fino alla sezione "Campi personalizzati":
Qui, inserisci ciascuno dei campi personalizzati forniti sopra. Solo il
anteprima
il campo è obbligatiorio. Puoi usare le seguenti immagini per il tuoanteprima
campo se non ne hai ancora uno (fai clic destro e salva):
Una volta compilati i campi, è possibile pubblicare il post. Ripeti questo processo finché non hai almeno due post (preferibilmente di più).
L'homepage
Ora abbiamo tutti i prerequisiti fatti, possiamo finalmente codificare la parte principale della homepage. Nel
Pagina-home.php
, digitare quanto segue:Ultimi progetti
query_posts ();
è una funzione di WordPress per ottenere messaggi specifici dal database. Come puoi vedere nelle discussioni per la funzione (le parti tra parentesi), stiamo dicendo a WordPress di ottenere solo 2 messaggi dalla categoria Portfolio ($ ts_portfolio_cat
sta ottenendo le informazioni dalla pagina delle opzioni che abbiamo creato).Con
mentre();
, abbiamo avviato il 'WordPress Loop'. Qui possiamo dire a WordPress quale parte di ogni post di cui abbiamo bisogno.$ Contatore ++; $ preview = get_post_meta ($ post-> ID, 'anteprima', vero); $ date = get_post_meta ($ post-> ID, 'date', true); ?>Sulla prima riga, ne abbiamo aggiunto uno al contatore (lo useremo a breve).
$ Contatore ++;
è una mano breve per la scrittura$ contatore = $ contatore + 1;
Quindi usiamo il
get_post_meta ();
funzioni per ottenere i campi personalizzati di 'anteprima' e 'data' dal post - che sono posizionati nel$ anteprima
e$ date
variabili rispettivamente."> Sopra abbiamo creato un div con a
lavoro
classe per l'oggetto del portfolio in cui si terrà. Ma notiamo che stiamo anche verificando che se il nostro$ contatore
uguale a 2 (ovvero questo è il secondo elemento del portfolio), aggiungiamo un'altra classe al div nominatoscorso
. Questa classe tornerà utile quando modificheremo questa sezione.Successivamente, emettiamo l'immagine di anteprima:
Se esiste un'immagine di anteprima, allora ...
">Il
the_permalink ();
la funzione viene utilizzata per generare il collegamento al post corrente.Quindi, emettiamo l'immagine di anteprima. Ma lo stiamo anche eseguendo attraverso il resizer TimThumb per ridimensionare l'immagine a 450px in larghezza e 210px in altezza (dall'immagine 930px in realtà è). Nota come usiamo
bloginfo ( 'template_directory');
assicurarsi che WordPress stia verificando nella nostra cartella dei temi (è un equivalente diTEMPLATEPATH
abbiamo usato nella parte precedente della serie).Ora dobbiamo solo produrre la riga di testo che va sotto l'immagine (il titolo e la data):
"> ($ Data)";?>
Questo è relativamente semplice. Noi usiamo
the_permalink ();
di nuovo per ottenere il link per il post corrente.il titolo();
è usato per ottenere il titolo del post corrente.Quindi controlliamo se è stato inserito un campo personalizzato 'data' (nel file
$ date
variabile) per questo post. Se è così, lo stampiamo.Alla fine, chiudiamo la corrente
lavoro
div, chiudi il WordPress Loop conENDWHILE;
e chiudi ilcontentwrap
div che è stato creato nell'intestazione.Terapia di bellezza
Dai un'occhiata alla homepage nel tuo browser, per vedere questo meraviglioso capolavoro:
Ok, forse no; ma niente di poco CSS non può risolvere. Aggiungi il seguente in
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; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; fluttuare: a sinistra; imbottitura: 19px 19px 30px 0; margin-bottom: 5px; overflow: nascosto; larghezza: 960 px; .contentwrap padding-left: 19px; overflow: nascosto; #content h2 font-weight: bold; letter-spacing: -1px; margin-bottom: 10px;
#soddisfare
è il wrapper per contenere tutto il contenuto principale. Abbiamo aggiunto bordi arrotondati alla base, usando lo stesso metodo che abbiamo usato per la navigazione.Dentro
deepblue.css
aggiungere quanto segue per aggiungere un colore di sfondo chiaro a#soddisfare
, oltre a definire il colore del bordo:#content background-color: # f9f9f3; border: 1px solid # 111; border-top: nessuno;
Ovviamente gli articoli devono essere visualizzati in linea (fianco a fianco). Lo faremo semplicemente impostando
fluttuare: a sinistra;
ad entrambi con alcuni margini all'internostyle.css
:
.work float: left; margine: 0 20px 40px 0; larghezza: 460 px; . lavoro a contorno: nessuno; .work p font-size: 0.9em; font-weight: bold; margine: 8px 0 10px 0; .worksingle p font-weight: normal; .work span font-size: 0.8em; font-weight: normal;Visualizzalo in anteprima e noterai che gli elementi sono ancora visualizzati uno sotto l'altro. Un rapido controllo con Firebug rivela che il secondo elemento non ha abbastanza spazio per il margine giusto.
Questo è dove quel contatore aggiungeclass = "ultimo"
al secondo elemento arriva:.last margin-right: 0! important;
Non abbiamo ancora finito. Dai un'occhiata più da vicino all'immagine del prodotto finale e noterai che dobbiamo anche impostare un bordo attorno all'immagine del portfolio, che cambia colore al passaggio del mouse.
Aggiungi i seguenti stili di colore adeepblue.css
:.lavoro 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;
Area Widgetizzata
Il
.extraswrap
l'area della home page è widget-ready (3 widget max), il che significa che possiamo aggiungerli e gestirli direttamente da WordPress Dashboard, proprio come faresti per una barra laterale pronta per lo schermo:
In primo luogo, dobbiamo dire a WordPress di creare una nuova area widget usando il
register_sidebar ()
funzione. Il seguente codice va alla fine del tuofunctions.php
file:if (function_exists ('register_sidebar')) register_sidebar (array ('name' => 'Homepage Bottom', 'before_widget' => '',' after_widget '=>'',' before_title '=>'',' after_title '=>'
',));Dentro
register_sidebar ()
passiamo una matrice contenente alcune informazioni per la nostra area widget. Ilnome
è usato per identificarlo quando abbiamo più widget-aree (o barre laterali).before_widget
eafter_widget
è il codice utilizzato per avvolgere ogni singolo widget. Per impostazione predefinita, questo sarebbe un elemento della lista; invece usiamo un div.before_title
eafter_title
è ciò che viene utilizzato per racchiudere il titolo del singolo widget.Ora, per includere questo widget sulla nostra homepage, aggiungi quanto segue alla fine di
Pagina-home.php
:Per prima cosa apriamo il nostro div wrapping e quindi usiamo il
dynamic_sidebar ();
funzione - attraverso la quale passiamo il nome dell'area del widget che abbiamo usato in precedenza, al momento della registrazione dell'area. Infine, includiamo il nostrofooter.php
file usando ilget_footer ()
funzione (nello stesso modo in cui abbiamo incluso l'intestazione).Vai avanti e aggiungi tre widget di test all'area tramite Aspetto -> Widget -> 'Homepage Bottom'.
E l'anteprima:
Per visualizzarli tutti in linea, utilizzare il seguente codice in
style.css
:.extraswrap margin-top: 10px; overflow: nascosto; .extras float: left; margine: 0 0 0 20 px; larghezza: 300 px;
Inoltre modificheremo un plugin per Flickr e Twitter. In primo luogo, installa i plugin FlickrRSS e Twitter per WordPress.
Da Impostazioni -> FlickrRSS, inserisci il tuo numero ID Flickr usando le istruzioni fornite (o usa il mio:
31912870 @ N03
), impostalo per usare 9 immagini quadrate; e per la sezione HTML Wrapper, utilizzare:
Prima dell'immagine:
Dopo l'immagine:
Questo ci permetterà di disegnare e posizionare facilmente le immagini.Vai avanti e scambia due widget nell'area della homepage su Flickr e Twitter (ricorda di inserire i tuoi dettagli su Twitter nella sezione 'Modifica' del widget).
Inserire lo stile seguente in
style.css
:/ * style FlickrRSS widget * / .flickr display: inline; .flickr a: link img, .flickr a: visited img margin: 0 10px 10px 9px; / * widget di Twitter in stile * / ul.twitter margin: 0; ul.twitter li.twitter-item -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px; stile elenco: nessuno; margin-bottom: 20px; imbottitura: 8px 10px; ul.twitter li.twitter-item span abbr border-bottom: none; blocco di visualizzazione; font-size: 0.8em; stile di carattere: corsivo; margin-top: 3px;Lo stile di Flickr visualizza ogni immagine in linea e imposta i margini appropriati per adattarsi a tre immagini per riga. Negli stili di Twitter, abbiamo aggiunto margine e riempimento per separare ogni tweet e abbiamo anche usato
border-radius
ancora.Aggiungi anche il seguente a
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;Ogni immagine di Flickr ora ha un bordo su cui passare il mouse, simile a quello che abbiamo usato per le immagini del portfolio.
footer
Dentro
footer.php
inserisci il seguente codice Chiudiamo i tag appropriati e includiamo un avviso sul copyright. Sentiti libero di rimuovere la menzione di me stesso e dei NETTUTI da esso, anche se sarebbe apprezzato se tu ci restituissi un link in qualche modo. Includiamo anche il codice di Google Analytics dalla pagina delle opzioni.Copyright © . Progetto di Dan Harper per NETTUTS. Alimentato da WordPress.
Aggiungi il seguente a style.css
:
p.footer clear: both; font-size: 0.7em; stile di carattere: corsivo; imbottitura: 5px 20px;
E a deepblue.css
:
p.footer color: #ccc; p.footer a: link, p.footer a: visited color: #ccc; border-bottom: 1px tratteggiato; p.footer a: hover border-bottom: 1px solid; decorazione del testo: nessuna;
Questo conclude il Day 2 della Settimana di WordPress, e abbiamo fatto parecchio lavoro! Domani passeremo al layout della pagina "Blog" e impareremo a modellare "post singoli" in modo diverso a seconda della categoria in cui si trovano.
Parte 3 - Disegnare il blog