Creare un template diverso per ogni pagina di wp
Molti di voi già lo sapranno, altri no. Con wordpress è possibile creare un sito, per ipotesi, che abbia ogni pagina diversa dall’altra come grafica e layout.
Già sappiamo come si possa semplicemente cambiare template per le singole categorie creando appositi files che siano nominati come category-6.php ad esempio, per la categoria che abbia ID n.6, e così via.
Per le pagine la cosa è leggermente diversa ma non per questo difficile.
Innanzitutto dovremo creare la nostra pagina di template, che non necessariamente deve contenere il loop di wordpress, ma solo quello di cui abbiamo bisogno.
Inseriamo nelle prime righe della pagina, che potremo nominare come crediamo (esempio: laura.php) le seguenti righe di codice:
<?php
/*
Template Name: Laura
*/
?>
Caricate la pagina nella cartella del vostro template in uso.
Andiamo poi a creare una pagina vuota tramite il nostro pannello di controllo: Scrivi > Pagina, intitoliamola come crediamo, purchè il permalink sia in questo caso: “laura”. Poco più in basso noterete un’opzione: Template pagina. Potrete selezionare il template “laura” precedentemente caricato, cliccate su pubblica ed il gioco è fatto!
E’ lo stesso strumento che ho usato nel nuovo template per creare le pagine di ricerca per tags e per autori creando due pagine di templates diverse dove in ognuna ho inserito i tag di wordpress necessari a richiamare la tag cloud e l’elenco degli autori. Semplice no? ^^


















Add to Google

49 Commenti
good;) ho utilizzato anchio questo metodo per creare una pagina che mi permettesse di richiamre una lista di link attraverso le funzioni di wp.
Io uso wordpress 2.7 e ho cercato di eseguire questa procedure che descrivete… ma non vedo alcun “Permalink” ne la possibilità di selezionare il template della pagina entrando in Scrivi->Pagina…
Come mai ? Devo attivare qualcosa ??
devi creare prima la pagina di template, e caricarla nel tema: l’hai fatto?
ops ho dimenticato di cliccare su “invia risposte via mail” pardon…
Sul mio sito (www.valdagri.net) sono riuscito ad eliminare la sidebar nella pagina meteo, ma quando scrivo l’articolo l’impaginazione rimane come legata alle sidebar. Come devo fare? HELP!!!
@gaetano: modificare il template di quella pagina, ma dalla domanda temo che tu non sia un webdesigner vero? pertanto ti consiglio di cercarne uno e aiutarti in tal senso
Per un sito mi serve avere uno sfondo diverso per ogni pagina. Sono riuscita a creare la nuova ma non a modificarne lo sfondo. Come posso fare?
devi modificare la pagina del template che hai creato e che userai appositamente per quella pagina, come segnalato nell’articolo
Si, fin li ci sono ma non capisco come.
Ho provato a dare lo stile della pagina ma mi prende solo quello del css principale. Mi manca fisicamente come dirgli in questa pagina che io ho creato fammi lo sfondo ad esempio verde.
@vale: aggiungi un id al tag body, ad esempio:
body id=”verde” e poi definisci lo sfondo nel css
scusami ma di php me ne intendo poco, nella mia pagina il tag body lo inserisco all’inizio della pagina?
non è php vale, è semplice html, credo tu debba fare un ripasso prima di accingerti a fare una cosa del genere allora eheh
certo, il body sicuramente ma il resto della pagina no.
non ho capito. spostiamoci sul forum per le domande così non andiamo offtopic
ciao scusa ma inserire un template nuovo ad ogni pagina mi consente anche di poter abilitare nella pagina con il nuovo template anche la possbilità di scrivere messaggi di commento a quella pagina? e se la risposta è negativa come devo fare per fare in modo che ci siano i commenti anche nelle pagine diverse dalla homepage? grazie mille!
mi fai venire il dubbio, nel senso che non so se le pagine in confronto agli “articoli” siano commentabili…prova e facci sapere
grazie, in poche parole hai descritto perfettamente quello che serve, una domanda io ho duplicato il file page.php e l’ho chiamato home.php e funziona tutto alla perfezione dopo poche modifiche, vorrei togliere il codice che richiama l’header ma così facendo mi sparisce tutto il tema e vedo i contenuti su pag bianca sapresti dirmi cosa sbaglio?
grazie
@silvana: sbagli che l’header non lo devi cancellare mai
già,:-) e se copio il codice della header nel template, meno la parte che non voglio?
dovrebbe funzionare!! grazie
Ho seguito l’articolo, tutto perfetto.
Ho solo un problema: la pagina (con funzione php all’interno) che ho creato contiene dei link e dei menu a tendina che richiamano delle altre funzioni, ma non appena ci clicco su vengo reindirizzato all’homepage del sito.
Cosa sbaglio?
ci mostri la pagina in questione?
certamente.
La pagina (implementata nel sito tramite template)è questa:
http://www.mobilitapalermo.org/mobpa/carpnlg/
se provi a cliccare su offerta, oppure nel menu a tendina, verrai reindirizzata all’homepage del sito.
mentre questa è la semplice pagina php funzionante:
http://www.mobilitapalermo.org/passaggio_it_partner_include_v1.php
ciao, io ho provato a fare come hai detto tu e nel pannello di amministrazione mi fa scegliere tra il template standard e il “laura” solo che il laura è una pagina con solo le righe di codice che ho copiato dal tuo post e non un template vero e proprio… come faccio a fargli scegliere due o più template?
ciao e scusa il disturbo e grazie per la risposta…
rouge
@rouge: ovviamente quelle due righe di codice devono PRECEDERE tutto il contenuto che avrebbe una pagina normale (page.php) e modificare la grafica dove serve a te.
ma allora scusa un secondo mi puoi spiegare bene un attimo come fare per piacere?
se io ho un tema a colori rossi a senza barra laterale diciamo tema 1 e un tema a colori blu e con barra laterale diciamo tema 2 io come faccio ad avere il tema 1 in tutto il sito tranne in un poche di pagine dove voglio il tema 2?
i miei due temi sono in due sottocartelle themes una chiamata tema 1 con page.php css index.php etc e l’altra è sempre in una sottocartella di themes chiamata tema 2 con page.php css index.php etc. le righe di codice che indichi nel post dove le inserisco? in page.php di quale cartella? come faccio?
scusa il disturb o e grazie per la pazienza
ROuge
caro rouge, hai toppato eheh non è quello di cui stiamo parlando. non puoi certo prendere una pagina da un template e una da un altro a meno che non ti copi tutto html e css da capo nella pagina nuova
non è quello che vorresti far tu, sei fuori strada
orca… ma come faccio ad avere un template diverso per pagina o una pagina con un template diverso?
esiste un modo?
o anche come faccio a fare in modo corretto quello che hai spiegato tu nel post? perchè alla fine proprio se non posso avere temi differenti per pagina mi basterebbe (accontentandosi al massimo) avere la home senza sidebar…
rouge dalle domande che fai mi sembra di capire che non sei nè webdesigner nè sviluppatore. qui si parla di tecniche avanzate per customizzare i template di WordPress, non posso spiegarti da zero come farlo
dicoamo che un poco me la cavo ma ho bisogno di qualche imboccata… se tu potessi…
seguici, nei prossimi giorni sarà pubblicata la prima puntata della guida per creare template con WordPress
ciao, io ho un problema … non posso cambiare i permalink ho bisogno di lasciare il numero ID della pagina perchè alcuni plugin che ho richiedono l’inserimento di codice in pagine create ad hoc e consentono di indicare il numero ID pagina con valore solo numerico e non anche, ad esempio, il titolo.
Non è possibile, ad esmpio, indicare nel codice della pagina template qualcosa tipo:
????
Ad esempio … ? Come posso risolvere ?
Grazie 1000
Ciao, come ti si diceva sembri molto fuoristrada, ma capisco cosa significhi partire da un’idea seppur sbagliata, ma fissarsi a voler procedere così.
Allora puoi procedere così,
copia il file page.php dal tema secondario sul tema attualmente in uso, assicurati però prima di avergli cambiato nome, di solito io nomino i miei template page-(utilizzo).php.. ad esempio page-catalogo.php page-contatti.php
Apri il file e inserisci l’intestazione come da articolo affinchè il template abbia un suo nome.
Ora il template è pronto ad essere richiamato all’interno di una pagina…
Però noterai ora che i fogli di stile richiesti non vengono caricati o vengono caricati non rispettando lo stile del secondo tema.
Allora dentro il file page-(utilizzo).php modifica tutte le classi e gli id css assegnati aggiungendo un numero 2 alla fine..
Farai la stessa cosa sul foglio di stile del tema 2.. e lo copierai e incollerai a seguito del foglio di stile del primo tema…
Hai fatto un macello per avere la pagina d un tema dentro un sito di un altro tema… non è affatto consigliato o sensato..
però spero sarai felice!!
Mauhauha
NB la testata e la sidebar caricata saranno cmq quelle del primo tema…. se vuoi sapere come caricare sidebar e header diversi… bobò.. passa a casa con pasticcini e caffè e iniziamo.
Ciao!
Grazie della dritta
ma a me questo procedimento funziona solo per la pagina che visualizza tutti i post di quella categoria, e non per i singoli post appartenenti alla categoria.
Io vorrei esattamente l’inverso: un template (uguale alla index) per i risultati della ricerca(di qualunque categoria), e un template per i post della categoria.
Si può fare?
mercy!!!
Simona
basta usare search.php per i primi e category.php per i secondi. sono file che fanno parte di un template base e li puoi differenziare come vuoi
ma non mi funziona
ho sbagliato a dire, non ricerca, il file search c’è già.
Se faccio un file category-14.php o category-video.php questo viene usato da WP solo per visualizzarmi la pagina elenco di tutti post di categoria, ma se io clicco su ogni singolo post la pagina che viene usata per visualizzare il post è la index.php o cmq non quella specifica della categoria a cui appartiene il post.
E’ normale?
thanks
per il singolo post c’è single.php, ma non c’è modo di differenziare la visualizzazione del post a seconda della categoria in cui risiede, se non agendo a livello di codice.
ok grazie…
ciao!
mannaggia me e all’altriusmo ^_^
mo due minuti ti copio due righe di codice semplice semplice per creare un if prima del loop dove indicherai che, se la categoria dell’articolo è “pippo” allora il layout comprenderà “quanto segue” potrebbe essere un semplice orpello o un layout più complesso a te l’elaborazione che segue.
Spero che risolverai .. puoi creare diverse varaibili per diverse categorie.. sia indicando l’id oppure indicando il nome di categoria.
Ciao.
Non mi ha fatto pubblicare il codice.. uffi uffi come fare?
[code]
[/code]
grazie scaso sei stato comunque utile…
Però ora ho un altro problema… Quando creo una nuova pagina (pagina non post) non mi fa scegliere il Template… non vedo la finestra o la tendina che dovrebbe farmelo scegliere…
Perchèèèèè?????
Dio santo ci fosse mai una volta che qualcosa è semplice!!!!!!!! >:-|
Allur, il codice te l’ho inviato sul form contatti del tuo sito,
lo inserisci “non in un template di pagina”
ma puoi metterlo in
single.php oppure in archive.php*…
_Single, quando apri un post legge l’if,
se il post appartiene a quella categoria allora si comporta come indicato,
altrimenti prosegue normalmente senza diversificazioni.
_Archive invece se clicchi su una categoria estraendone quindi l’archivio, se la categoria corrisponde a quella indicata allora verrà letta la personalizzazione.
*Da preferire la reazione di un file category-(id).php, sopratutto se la personalizzazione è significativa.
Realizza un file dove o usi l’id o usi il nome della categoria da personalizzare.
Ti faccio notare che parliamo di post non di pagine!!!
Se vuoi agire sui tempalte delle pagine devi duplicare il file page.php e intestarlo come template,
poi personalizzi il codice a tuo piacimento.
Se hai un corretto file template le correzzioni sui file single.php e archive.php non dovrebbero interferire!
(Io spero sempre di esserti stato utile perchè quando mi inguaio io spero sempre nel salvatore ma non ho mai la pazienza di chiedere e magari aspetare risposta, cerco sempre di risolvere sbattendomi..
ho più pazienza per fornire aiuto)
^_^
scaso io ti ringrazio infinitamente, però la mail nn è arrivata!
ho riprovato e il form funziona…
prova a rimandarmelo,
grazie mille!!!
poi ti faccio sapere!!!
grazie!!!!!!!
Ciao a tutti…
ho provato a seguiore la VS guida, ecco cosa ho fatto:
ho modificato la pagina page aggiungendo il seguente codice:
ho povato a cercare tutte le classi e gli id css, ma senza nessun risulato:
<a href="” rel=”bookmark” title=”">
<?php if($thumb ” && get_option(‘studioblue_page_thumbnails’) == ‘on’) { ?>
‘‘.__(‘Pages’,'StudioBlue’).’: ‘, ‘after’ => ”, ‘next_or_number’ => ‘number’)); ?>
Infine ho fatto altre ricerche dentro il file marcato .css ma nessuno mandava un collegato ai tipi di file (style-brown.css) i quali determinano il colore.
Potete per favore aiutarmi che sto diventando pazzo?!
Grazie
scrivi sul forum
Forum quale?! :p
http://www.italianwebdesign.it/forum
Grazie per questo preziosissimo articoli. Erano giorni che cercavo come fare questa cosa ma nessuno sapeva darmi risposta.
Eccellente, grazie.