[Codice WordPress] Creare un’homepage da personalizzare secondo le proprie esigenze

———————————————————————-
ATTENZIONE: L’articolo è stato aggiornato.
———————————————————————-

Quando si visita l’homepage di un blog, nella maggior parte dei casi ci si trova di fronte alla lista degli ultimi articoli pubblicati: una breve lista con titolo dell’articolo, contenuto parziale e link che consente di raggiungere la pagina con l’articolo completo. In fondo alla pagina c’è poi un link che consente di andare a vedere gli articoli via via meno recenti. Può però capitare di avere l’esigenza di strutturare diversamente la propria homepage. Questo capita ormai sempre più frequentemente.    

WordPress offre la possibilità di impostare una pagina statica come Homepage. Ciò è in effetti molto semplice e alla portata di tutti. Se non sai come fare, consulta questo articolo.

Cosa succede, però, quando si desidera che nella Homepage ci sia una pagina dinamica? Ad esempio, una pagina che riporti gli ultimi articoli, gli ultimi commenti, qualche post casuale, un form di ricerca, degli articoli di una determinata categoria… In una pagina statica non è possibile inserire tutto questo.

Per creare una homepage dinamica è necessario assegnarle un template; ecco come fare:

  1. Vai nella cartella del tema wordpress che stai usando.
  2. Apri il file index.php e salvalo col nome home.php.
  3. Apri index.php e aggiungi questo codice proprio in testa al file:

    <?php
    /*
    Template Name: index.php
    */
    ?>
  4. Entra in WordPress come amministratore e crea una nuova pagina, a cui darai come titolo, ad esempio ‘Homepage’. Non scrivere nulla come contenuto della pagina, lasciala bianca. Nella sezione Attributi>Template, che trovi a destra, vicino alla pagina che stai creando, seleziona dal menu a tendina la voce: index.php. In questo modo hai assegnato il template index.php alla pagina che sarà l’Homepage del tuo blog. Pubblica la pagina appena creata.
  5. Vai in Impostazioni>Lettura: da ‘Visualizza pagina iniziale’ scegli ‘una pagina statica’ e quindi seleziona dal menu a tendina la pagina con il titolo ‘Homepage’.
  6. A questo punto non ti resta che andare a modificare come vuoi il file index.php, perché è questo che determina l’aspetto della tua Homepage. Puoi inserire tutto ciò che desideri per personalizzare la pagina secondo le tue esigenze.

Se desideri mantenere una pagina in cui visualizzare gli articoli del blog in ordine cronologico inverso, allora procedi seguendo questi punti:

  1. Vai nella cartella del tuo tema WordPress e apri il file home.php che avevi creato al punto 2 della lista precedente. In testa al file incolla questo codice:
    <?php
     /*
     Template Name: home.php
     */
     ?>
  2. Crea quindi una nuova pagina dal titolo ‘Articoli’ (oppure ‘Blog’, o altro nome a tua scelta) e come template seleziona dal menu a tendina il file  home.php.
  3. Vai in Impostazioni>Lettura: dal menu a tendina di ‘Pagina articoli’ scegli la pagina che hai appena creato, ‘Articoli’.
  4. A questo punto, gli articoli in ordine cronologico inverso saranno disponibili alla pagina ‘Articoli’ del tuo blog, quindi all’indirizzo: http://tuoblog.com/articoli.

N.B.: Se hai intenzione di inserire la funzione ReadMore nella nuova Homepage che hai creato, sappi che è molto probabile che non funzioni come previsto. Per offrire la prima parte di un post e poi il link che consente di proseguire la lettura, devi usare un’altra funzione:

  1. Apri il file index.php e cancella questo codice:
    <?php the_content('Read the rest of this entry &raquo;'); ?>
  2. Sostituiscilo con questo:
    <?php global $more; $more = false; ?>
    <?php the_content('Read the rest of this entry &raquo;'); ?>
    <?php $more = true; ?>

Per questo articolo mi sono ispirata in gran parte a quanto ho trovato in questa utilissima guida:

http://www.ambrazanni.it/blog/creare-una-home-page-personalizzata-in-wordpress

20 Risposte a “[Codice WordPress] Creare un’homepage da personalizzare secondo le proprie esigenze”

  1. :-) mi hai fatto risparmiare un bel po’ di tempo!
    Era un po’ che non utilizzavo wordpress… tante cose sono cambiate, niente più giri strani per cambiare l’aspetto della home, fantastico!

  2. Ciao Nicolò! Eh sì, ora è più facile personalizzare la home: le nuove versioni di WordPress danno molta più libertà rispetto al passato. Sono lieta di esserti stata utile con il mio articolo, ritorna quando vuoi! :)

  3. Ciao Elisa visto che sembri molto preparata sull’argomento vorrei chiederti un aiuto. So che è passato quasi un anno dal tuo post quindi magari anche le versioni di wordpress sono cambiate comunque ci provo. Ho creato un template con Artisteer, poi l’ho messo online. Fin qui tutto okay. Ora vorrei impostare la homepage tipo http://www.notiziefresche.info/ o http://news.google.it/nwshp?hl=it&tab=wn quindi in poche parole a categorie (che si aggiornano automaticamente con l’aggiunta di nuovi articoli) piuttosto che al blog con gli articoli che scendono in ordine di post. Sapresti darmi qualche consiglio. Grazie anticipatamente

  4. Ciao Vincenzo, per realizzare l’Homepage che tu hai in mente devi partire proprio dalle istruzioni di questo articolo; quello è il primo passo da fare.
    Per fare in modo che compaiano le notizie divise per categorie, dovrai poi inserire il codice apposito; c’è un altro mio articolo che spiega come fare; si chiama Codice wordpress: mostrare gli ultimi articoli di una determinata categoria o tag.
    E’ forse un po’ lungo arrivare al risultato che vuoi, ma non è assolutamente difficile; bisogna però essere molto precisi nel nominare e richiamare le pagine, i file, ecc.
    Può anche essere che ci siano dei plugin che permettano di automatizzare il tutto, bisognerebbe fare una ricerca a riguardo.

  5. grazie davvero per la risposta, provo un pò a smanettare e se ho bisogno di aiuto ti scrivo di nuovo. Poi una volta che avrò risolto il problema cercheò di fare un pò così cito il tuo blog perchè non ci sono molte informazioni a riguardo in giro per il web. Ora provo a fare il passaggio di questo post. Poi passo a quello dei codici. Speriamo bene :)

  6. Buongiorno, sono di nuovo qui :) Vorrei creare il menù orizzontale suddividendolo per categorie ma l’unico modo che ho per aggiungere voci a questo menu è quello di creare una nuova pagina. Ma a me serve categoria, non pagina. Ho creato il template con artisteer 2.
    Qualche suggerimento ? Grazie.

  7. Mi spiego meglio:

    ora, quando aggiungo delle nuove pagine, le schede vengono generate automaticamente in cima alla mia pagina, dove risiede il menu orizzontale. Creando child page si genereranno automaticamente i menu a discesa. Fin qui semplice.

    La mia domanda: Quello che sto cercando di fare è spostare i link delle categorie, che ora risiedono in un widget a discesa sul lato sinistro del sito, al menu orizzontale in modo che un lettore sceglie la categoria, ci clicca, e si apre la pagina con tutti gli ultimi post di quella categoria.

    Esiste un plugin per questo o devo cambiare codice o sbaglio in qualcosa ?

    grazie

  8. @Vincenzo: anche questo tema ti può essere utile: http://themeshaper.com/thematic-power-blog-theme/.
    Questo tema ha un menu orizzontale con le categorie, dovrebbe essere proprio ciò che cerchi; puoi installare questo tema, oppure fare copia-incolla del codice che permette questa impostazione, così puoi inserirla nel tuo tema attuale.
    Può darsi che ci siano plugin che gestiscono i menù, bisognerebbe fare una ricerca in merito.

  9. Non mi è chiaro un passaggio…

    1. Vai nella cartella del tema wordpress che stai usando. (Vale a dire nel pannello di controllo del proprio sito, nella cartella del tema, l’index.php che appare poi nell’Editor del Dashboard?)
    2. Apri il file index.php e salvalo col nome home.php. (Quindi, estraggo dal pannello di controllo quel file index.php e lo rinomino, sostituendolo?)
    3. Apri index.php e aggiungi questo codice proprio in testa al file.. (E in questo caso quale index.php devo aprire? Quello rinominato, o deve esserci anche quello già presente nel tema?)

    :) Perdona la mia precisione.. ma mi piacerebbe capire bene questo metodo, così che se riuscirò a farlo, lo inserisco sul mio sito :)

    Buona Giornata,
    Flavia

  10. @Flavia: l’articolo è un po’ datato e per certi aspetti andrebbe rivisto (soprattutto la seconda parte, quella che parla degli articoli in ordine cronologico inverso, perché ora le cose possono essere fatte più semplicemente). Non appena posso, devo ricordarmi di aggiornare questo articolo! :)
    Comunque il procedimento funziona, puoi tranquillamente seguirlo per quanto riguarda la prima parte, perché se hai intenzione di crearti una homepage personalizzata è proprio così che devi fare.
    Rispondendo alle tue domande:
    1) Non so quanta libertà di azione ti lasci l’editor di WordPress; ti converebbe usare un editor per pagine web (ce ne sono anche gratuiti). Così agiresti più tranquillamente, a mio avviso, e con meno paura di sbagliare. Però se per vari motivi devi usare per forza l’editor di WordPress, mi raccomando, fai un bel backup del tema prima di modificare qualsiasi cosa! :)
    2) No, il file non va sostituito. Va creato un file-copia, che devi chiamare home.php. Praticamente tu puoi anche fare così: apri un nuovo file php, copi il contenuto di index, e poi lo salvi con il nome home.php. (Non so se l’editor di WP ti permetta di fare queste operazioni…)
    3) Il file index.php è quello, per così dire, “originale”: quindi quello che è nato prima, quello già presente.
    Spero che ora sia più chiaro! :)

  11. ciao Elisa,
    io sto facendo un sito con wordpress, ho aggiunto una seconda pagina e vorrei poterci
    inserire dei post come è possibile nella home, ma non voglio farla diventare la pagina principale e in più i post che vorrei mettere sulla seconda non sono correlati con la prima pagina,
    cosa devo fare?
    ho cercato di tutto ma non ho trovato nulla in merita
    grazie mille

  12. @Virginie: Ciao Virginie, se ho capito bene, potresti risolvere facilmente il problema in questo modo: gli articoli che tu vorresti mettere nella seconda pagina, li associ ad una categoria o a un tag (l’uno o l’altro è indifferente); sai come si fa, no? (se non lo sai, dai un occhio alla mia Guida a WordPress, lì è spiegato). Facendo in questo modo, si crea automaticamente una pagina-indice per quella precisa categoria (o tag), pagina che tu puoi facilmente richiamare aggiungendo un link al menu o in qualsiasi parte del blog tu voglia.

  13. grazie elisa,
    il problema è che nella seconda pagina ho inserito due immagini perchè non riuscivo a dividerle in due post, ma quando cerco di attribuirgli una categoria o tag lateralmente non mi esce la didascalia che invece nel menu dei post trovo, come devo fare?
    grazie mille per la tua consulenza

  14. @Virginie: non è possibile attribuire un tag ad un’immagine; puoi attribuire un tag solo ad un post; per cui prima devi inserire le due immagini ciascuna dentro il suo post, e poi ai post aggiungi il tag.

  15. @Raffaele: ciao Raffaele, puoi farlo in due modi: 1) impostando un redirect in modo che quando le persone vanno sulla pagina ‘root’ vengano reindirizzate in quella della categoria. 2) puoi usare un plugin che ti permetta di inserire la pagina archivio di una categoria dentro una pagina qualsiasi (quindi anche la home). Questo è il plugin che può fare al caso tuo: https://wordpress.org/plugins/archives/

    Io se fossi in te userei la seconda soluzione.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *