In questa serie da sei a sei, da principiante 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.
Nel primo giorno, gestiremo le sezioni preparazione e amministrazione creando la nostra pagina Opzioni.
Entro la fine di questa serie, avremo creato Innovazione - un modello WordPress di qualità premium perfetto per mostrare un portfolio e ospitare un blog; completa con le seguenti funzionalità:
Il tema includerà tre stili incorporati, DeepBlue, RedSpace e SoftLight, ma sarà possibile aggiungere facilmente le proprie combinazioni di colori:
Il piano per ogni giorno:
Quale esperienza precedente ho bisogno?
L'esperienza con xHTML e CSS è un must (dato che non approfondirò gran parte di questo codice in dettaglio).
Sarebbe anche molto utile avere una conoscenza di base di PHP (come l'uso di variabili, array, istruzioni condizionali e cicli 'foreach' e 'while'. Scopri l'eccellente serie screencast di "Immersione in PHP" di Jeffrey.
Avere una certa conoscenza di WordPress (anche solo sapendo come aggirare il Dashboard!) Migliorerebbe sicuramente la tua esperienza. Dai un'occhiata alla serie di screencast di Drew "WordPress for Designers".
Oggi gestiremo il codice di back-end di base su cui si baserà il resto del tema. Per prima cosa sarà necessaria una nuova installazione di WordPress, preferibilmente l'ultima versione (2.7 al momento della scrittura); tuttavia il modello funzionerà con qualsiasi versione sopra 2.5. Dentro il / Wp-content / themes /
cartella, creare nuove cartelle e file con la seguente struttura:
/innovazione/
/ stili /
/profondo blu/
deepblue.css
functions.php
index.php
page.php
Pagina-home.php
Pagina-portfolio.php
style.css
var.php
functions.php
conterrà il codice per la nostra pagina di opzioni e widget tra le altre cose.index.php
è usato per mostrare gli ultimi messaggi.page.php
sarà il modello utilizzato per la maggior parte delle singole pagine.Pagina-home.php
sarà il nostro modello di prima pagina.Pagina-portfolio.php
sarà la nostra pagina portfolio.var.php
sarà usato per recuperare le nostre opzioni dal database.style.css
conterrà la maggior parte del nostro stile./styles/deepblue.css
conterrà lo stile per la nostra prima combinazione di colori.
Questi non sono tutti i file di cui avremo bisogno. Creeremo gli altri mentre procediamo in modo che tu possa capire a cosa servano.
Il due pagina-
i file sono modelli di pagina personalizzati, in modo che possiamo disporre il contenuto in modo diverso nelle pagine assegnate a questi modelli. Per WordPress riconoscerli, dentro Pagina-home.php
Digita il seguente:
Allo stesso modo, dentro Pagina-portfolio.php
accedere:
Il nome del modello è il nome utilizzato da WordPress quando si seleziona un modello di pagina. get_header ();
è una funzione di WordPress per caricare il file header.php
file (che creeremo in seguito).
E aggiungere il seguente a page.php
. Non è necessario assegnare a questo file il nome di un modello, poiché è il modello predefinito.
Abbiamo anche bisogno di assegnare alcuni dettagli come nome, descrizione e autore per il nostro tema. Questo viene fatto in un blocco di commenti nella parte superiore di style.css
:
/ * Nome del tema: URI del tema di innovazione: http://www.danharper.me/innovation Descrizione: Un tema avanzato di portfolio e blog realizzato da Dan Harper come parte di una serie di tutorial per NETTUTS.com Versione: 1.0 Autore: Dan Harper Autore URI: http://www.danharper.me * /
Per risparmiare tempo dopo, creeremo le categorie e le pagine pertinenti di cui avremo bisogno ora. Nella dashboard di WordPress, attiva il tema (userà il nome che abbiamo definito precedentemente nel CSS) - non preoccuparti che il tema sia vuoto, ci stiamo passando in seguito.
Ora crea tre nuovi pagine. Uno chiamato "Home" e l'altro "Portfolio". Seleziona il modello di pagina per ciascuno di essi come "Homepage" e "Portafoglio" rispettivamente. Assegna un nome alla pagina finale "Blog" e utilizza il modello di pagina predefinito.
Crea anche una nuova categoria chiamata 'Portfolio'. Questo è ciò che useremo per pubblicare gli articoli del portfolio in.
Dalla tua Dashboard, vai su Impostazioni -> Lettura. Per "Visualizzazione Pagina Frontale" imposta la prima pagina sulla pagina "Home" che hai creato e la pagina Post su "Blog":
Questo probabilmente sembrerà un po 'indietro, ma creeremo una pagina delle opzioni per il nostro tema prima di fare qualsiasi lavoro sul front-end vero e proprio. Questo perché l'intero tema dipende dalle opzioni sulla pagina e non avrebbe senso prima fare quelle altre parti.
Per coloro che non lo sanno, la pagina delle opzioni è una pagina in più nella Dashboard di WordPress che stiamo aggiungendo che contiene un numero di opzioni per il nostro tema. Questi sono:
Dentro functions.php
iniziare con il seguente. Il $ THEMENAME
variabile definisce il nome del tema che verrà utilizzato per il titolo della pagina in Dashboard (Innovazione). E $ shortname
è usato per rendere uniche le nostre opzioni - se lo cambi, dovrai cambiare diverse istanze in tutto il codice (quindi non cambiarlo;)).
Categorie Drop-Down
Successivamente creeremo il codice che ottiene tutte le categorie da utilizzare nell'opzione a discesa "Portfolio":
/ * Ottieni categorie in un elenco a discesa * / $ categories_list = get_categories ('hide_empty = 0 & orderby = name'); $ getcat = array (); foreach ($ categories_list as $ acategory) $ getcat [$ acategory-> cat_ID] = $ acategory-> cat_name; $ category_dropdown = array_unshift ($ getcat, "Scegli una categoria:");Questo codice utilizza WordPress '
get_categories ();
funzione per recuperare un elenco di tutti i nomi delle categorie e utilizzando aper ciascuno();
loop per aggiungere ogni nome e ID in un array chiamato$ getcat
per uso più avanti nel codice. Finalmente, usiamoarray_unshift
per inserire "Scegli una categoria:" nella parte superiore della matrice.Pagine a discesa
La prossima è un'altra opzione a discesa simile che seleziona il nome di una pagina. Il codice per questo è molto simile al precedente:
/ * Ottieni pagine in un elenco a discesa * / $ pages_list = get_pages (); $ getpag = array (); foreach ($ pages_list as $ apage) $ getpag [$ apage-> ID] = $ apage-> post_title; $ page_dropdown = array_unshift ($ getpag, "Seleziona una pagina:");Come ottenere le categorie, stiamo usando WordPress '
get_pages ();
funzione per ottenere un elenco di tutti i nomi delle pagine e il risultato viene inserito nel$ getpag
array da utilizzare in seguito.Elenco a discesa dei fogli di stile
C'è anche un'opzione a discesa per selezionare un foglio di stile. Questo codice è un po 'più complicato:
/ * Trova fogli di stile in un elenco a discesa * / $ styles = array (); if (is_dir (TEMPLATEPATH. "/ styles /")) if ($ open_dirs = opendir (TEMPLATEPATH. "/ styles /")) while (($ style = readdir ($ open_dirs))! == false) if (stristr ($ style, ".css")! == false) $ styles [] = $ style; $ style_dropdown = array_unshift ($ styles, "Scegli una combinazione di colori:");Il codice sopra utilizza il PHP
opendir ();
funzione, seguita dareaddir ();
per aprire il nostro/ stili /
cartella e ottenere un elenco di tutti i file in là.Quindi usiamo
stristr ();
per limitare la lista al solo.css
file (per impedire che le cartelle vengano emesse) e i risultati vengono passati al$ stili
schieramento.La matrice di opzioni
Tutte le nostre opzioni saranno archiviate nei propri array in modo da poterli elaborare in serie più avanti nel codice:
/ * Le opzioni * / $ options = array (array ("nome" => "Generale", "tipo" => "titolo"), array ("tipo" => "aperto"), array ("nome" = > "Color Scheme", "desc" => "Quale combinazione di colori vorresti?", "Id" => $ shortname. "_ Colourscheme", "type" => "select", "std" => "Scegli un color scheme: "," options "=> $ styles), array (" name "=>" Portfolio Category "," desc "=>" Seleziona gli articoli del portfolio della categoria che vengono pubblicati in. "," id "=> $ shortname "_ portfolio_cat", "type" => "select", "std" => "Scegli una categoria:", "options" => $ getcat), array ("name" => "Blog page", "desc "=>" Seleziona la pagina utilizzata come pagina del blog (post). "," Id "=> $ shortname." _ Blogpage "," type "=>" select "," std "=>" Seleziona una pagina: " , "options" => $ getpag), array ("name" => "Google Analytics", "desc" => "Inserisci qui il tuo codice di Google Analytics (o altro).", "id" => $ shortname. " _analytics_code "," type "=>" textarea "), array (" type "=>" close "));Ogni array è un'opzione e contiene
nome
,disc
,id
egenere
parametri. L'ID è molto importante ed è quello che useremo per fare riferimento all'opzione più avanti nel codice. Ad esempio, per ottenere la Categoria Portfolio, verificheremo il$ ts_portfolio_cat
(ts è il nome breve a cui abbiamo fatto riferimento nella parte superiore del documento).Opzioni back-end
Il codice seguente mostra la nostra pagina delle opzioni in Dashboard (è in "Design" in WordPress 2.6 o in basso) e salva le opzioni nel database.
function mytheme_add_admin () global $ themename, $ shortname, $ options; if ($ _GET ['page'] == basename (__ FILE__)) if ('save' == $ _REQUEST ['action']) foreach ($ opzioni come $ valore) update_option ($ value ['id' ], $ _REQUEST [$ value ['id']]); foreach ($ options as $ value) if (isset ($ _REQUEST [$ value ['id']])) update_option ($ value ['id'], $ _REQUEST [$ value ['id']])) ; else delete_option ($ value ['id']); header ("Location: themes.php? page = functions.php & saved = true"); morire; else if ('reset' == $ _REQUEST ['action']) foreach ($ options as $ value) delete_option ($ value ['id']); header ("Location: themes.php? page = functions.php & reset = true"); morire; if (! function_exists ('wp_list_comments')) add_theme_page ($ themename. "Opzioni", $ themename, 'edit_themes', basename (__ FILE__), 'mytheme_admin'); else add_menu_page ($ themename. "Opzioni", $ themename, "edit_themes", basename (__ FILE__), "mytheme_admin"); function mytheme_admin () global $ themename, $ shortname, $ options; if ($ _REQUEST ['saved']) echo ''; if ($ _REQUEST ['reset']) echo ''$ THEMENAME.' impostazioni salvate.
'; ?>'$ THEMENAME.' impostazioni ripristinate.
impostazioni
Infine, alla fine del file, inserisci:
require (TEMPLATEPATH. "/var.php");Noi
richiedere()
nostrovar.php
file che conterrà il codice per recuperare le nostre opzioni.
Nota che dobbiamo usareTEMPLATEPATH
nelrichiedere()
oincludere()
tag in modo che stia navigando nella nostra directory dei temi, e non nella directory di WordPress di root.Recupero di queste opzioni
Ora quelle opzioni sono nella Dashboard, dobbiamo essere in grado di usarle nel nostro tema. Inserire il seguente codice in
var.php
:get_var ("SELECT term_id FROM $ wpdb-> terms". "WHERE name =" $ ts_portfolio_cat ""); / * Ottieni ID pagina blog dal nome * / $ ts_blogpage = $ wpdb-> get_var ("SELECT 'ID' FROM $ wpdb-> posts". "WHERE post_title =" $ ts_blogpage "AND post_type =" pagina "LIMIT 1" ); ?>La prima sezione del codice recupera tutte le nostre opzioni dal database. Tuttavia abbiamo un problema: le nostre opzioni di categoria e pagina rimandano il nome della categoria o della pagina - ma preferiremmo l'ID in quanto è più facile da usare nelle funzioni di WordPress.
Le prossime due parti del codice fanno esattamente questo. Eseguiamo una query SQL per ottenere l'ID appropriato. Queste opzioni sono ora memorizzate nel
$ ts_portfolio_cat
e$ ts_blogpage
variabili.Ora abbiamo finito il lato amministrativo, accedi al tuo Dashboard e imposti le impostazioni appropriate per ciascuna opzione. Scegliere
deepblue.css
per lo schema dei colori per ora.
Sommario
Con questo si conclude il primo giorno di WordPress Week. Domani creeremo il layout della nostra home page, realizzando un personalizzato 'WordPress Loop' e aree widget di handeling.
Parte 2 - Cicli e widget.