Creare e inserire contenuti personalizzati in WordPress

24
4448
wordpress-589121_640

Con ogni aggiornamento di versione, WordPress aumenta le sue potenzialità e le sue possibilità di utilizzo, diventando sempre più uno strumento per la realizzazione di siti web complessi.

Oggi spiegherò come inserire dei contenuti personalizzati che non siano dei semplici articoli attraverso l’uso di un plugin WP Easy Post Types e dei custom field.

Supponiamo di voler creare un catalogo di libri con autore, descrizione, isbn, numero di pagine.

Creazione contenuto personalizzato

Una volta installato il plugin apparirà una sezione denominata Easy Post Types.

easy-post-type

Clicchiamo su Easy Post Types->Opzioni Generali e iniziamo a compilare i campi.

creazione-campo-personalizzato-wordpress foto

Cliccando su aggiungi contenuto, la sezione di inserimento Libri apparirà nel pannello di gestione di WordPress e nel menu di Easy Post Types.

Ora dal menù di Easy Post Types clicchiamo sul contenuto appena creato e si aprirà una nuova sezione dove poter personalizzare ulteriormente la sezione Libri.

creazione-campo-personalizzato-wordpress-2

Deselezioniamo Usa url semplici se vogliamo utilizzare i permalink di WordPress.

creazione-campo-personalizzato-wordpress-3

Nella sottosezione Campi andremo ad aggiungere i campi che ci servono per il catalogo libri tra cui autore,  isbn, numero di pagine.

Clicchiamo quindi su Add Field e inseriamo come segue

creazione-campo-personalizzato-wordpress-4

Per gli altri campi utilizziamo lo stesso metodo avendo cura di inserire come nome di sistema il nome che verrà poi utilizzato per richiamare il campo via codice PHP.

creazione-campo-personalizzato-wordpress-5

Una volta creati i campi del libro continuiamo creando un campo dove poter selezionare il genere del libro.

Sempre nella stessa pagina Clicchiamo su Aggiungi Categoria  e inseriamo i seguenti dati e clicchiamo su Add Category e inseriamo il genere

creazione-campo-personalizzato-wordpress-6

creazione-campo-personalizzato-wordpress-7

Per le altre opzioni lasciamo quelle di default.

Inserimento di un contenuto

Dopo aver aggiunto il contenuto personalizzato a WordPress è ora di iniziare a popolare il nostro catalogo libri.

Dal pannello di amministrazione di WordPress clicchiamo nella sezione Libri->Aggiungi nuovo e iniziamo a compilare tutti i campi relativi al libro.

creazione-campo-personalizzato-wordpress-8

L’inserimento dei contenuti avviene nello stesso modo con cui inseriamo un articolo, solo che ora abbiamo dei campi personalizzati dove inserire i dati del libro.

creazione-campo-personalizzato-wordpress-9

Nella sezione Generi possiamo creare tutti i generi di appartenenza del libro come se stessimo lavorando con le categorie di un articolo.

creazione-campo-personalizzato-wordpress-10

Visualizzare l’elenco dei contenuti personalizzati nel template

Il template del blog visualizza di default gli articoli e non i nostri contenuti personalizzati. Per permettere di visualizzare i nostri contenuti personalizzati dobbiamo intervenire sul codice del template, più specificatamente nei file single.php e index.php.

Prima del codice del loop inseriamo <?php query_posts( ‘post_type=libro’); ?>

In questo modo il loop si riferirà all’elenco dei libri e non agli articoli

<!--?php query_posts( 'post_type=libro'); ?-->
	<!--?php if (have_posts()) : ?-->
		<!--?php while (have_posts()) : the_post(); ?-->
			//codice while
		<!--?php endwhile; ?-->

	<!--?php else : ?-->
	//codice else
	<!--?php endif; ?-->

Ora dovremmo far si che vengano visualizzati i campi aggiuntivi, il titolo e la descrizione del libro.

Per fare questo compiliamo il codice con le seguenti istruzioni aggiuntive

<!--?php query_posts( 'post_type=libro'); ?-->
	<!--?php if (have_posts()) : ?-->
		<!--?php while (have_posts()) : the_post(); ?-->
			<!--?php the_title(); ?-->
			<!--?php the_content(); ?-->
			<!--?php the_meta(); ?-->
		<!--?php endwhile; ?-->

	<!--?php else : ?-->
	//codice else
	<!--?php endif; ?-->

Spieghiamo a cosa serve il codice aggiunto:

the_title() ci permette di visualizzare il titolo del post (libro)

the_content() ci permette di visualizzare  la descrizione del post (libro)

the_meta() ci permette di visualizzare una lista con i campi aggiuntivi inseriti nel post (libro) nel modo seguente

Chiaramente possiamo decidere di visualizzare singolarmente i campi che ci interessano richiamandoli uno ad uno come in questo esempio .

Il codice fin qui presentato mostra i dati di ogni libro senza formattazione, starà alla nostra fantasia mostrarli nel modo che preferiamo lavorando sui CSS e sul codice XHTML o HTML.

Visualizzare l’elenco dei generi nella sidebar

Per visualizzare l’elenco dei generi dei libri (e quindi di ogni categoria del nuovo contenuto personalizzato) dobbiamo modificare il codice che mostra le categorie nel seguente modo

<?php wp_list_categories(‘taxonomy=genere&hide_empty=1&title_li=’) ?>

Con il codice precedente specifichiamo di voler visualizzare le categorie appartenenti a taxonomy=genere.

Spero che la guida vi sia stata utile per creare i vostri contenuti personalizzati!

Alla prossima

 

24 Commenti

  1. Ciao interessante guida..però non mi è ben chiara l’ultima parte, ovvero quando si deve andare ad apportare modifiche sul codice…
    Cosa va dove?
    Grazi in anticipo
    Ciao ciao

     
  2. Ciao,
    devi intervenire sul file che utilizzi solitamente per mostrare i contenuti. Solitamente il file index.php

     
  3. Ottimo tutori al, ma avrei due domande:
    1-se avessi più contenuti personalizzati, tipo libri, DVD, news, prodotti che codice dovrei usare?
    2- il codice per visualizzarlo nel front-end se volessi personalizzarlo, tipo che il campo titolo dovrebbe avere il codice tipo

    My name is Bob Smith,
    but people call me Smithy.

    Sarebbe possibile farlo?
    Grazie mille

    Stefano

     
  4. Il codice va inserito nel file single.php se vuoi visualizzare un singolo contenuto, mentre in index.php se vuoi visualizzare l’elenco di tutti i contenuti.
    Per creare un loop che carichi un tipo di contenuto basta sostituire
    con questo
    ecc ecc in base al nome che hai dato al tipo di contenuto.
    la seconda domanda non l’ho capita.

     
  5. Grazie della risposta ma scusa anche se avessi più contenuti basta che aggiungo quella riga per x contenuti?
    Mi sorge un dubbio, io vorrei che questi contenuti personalizzati siano “divisi” per contenuti un pò come le categorie, ossia se io clicco sulla “categoria personalizzata” libri mi escono tutti gli articoli inerenti ai libri se clicco sulla categoria dvd mi escono tutti gli articoli inerenti ai dvd…come si fa in questo caso?
    Per la secondo domanda, come ti ho scritto mi ha “codificato” il codice html e ora ti faccio vedere uno screnneshot e così capisco come vorrei il codice:
    Eccolo: http://imageshack.us/photo/my-images/17/aboutmicroformatswebmas.jpg/

     
  6. Crei dal pannello di admin le varie pagine che andranno ad ospitare i contenuti Libri, dvd ecc ecc e le lasci vuote.

    Dopo di che crei una copia della pagina page.php.
    Ne crei una diversa per ogni pagina che hai fatto e le rinomini in questo modo page-dvd.php, page-libri.php ecc ecc.
    Nel codice di ognuna di queste pagine dovrai sostituire il loop originale con quello che hai fatto in questo modo



    //codice while


    //codice else

    Al posto di libro dovrai inserire il nome del contenuto personalizzato che hai creato.
    Il codice viene codificato solo se lo inserisce via editor interno di wordpress. Questo codice va inserito nel file phpo con un editor esterno o anche con l’editor accessibile da aspetto->editor->nomepagina.php

     
  7. Per il front end i campi li modifichi dal pannello di easy post types nella sottosezione campi.
    Però ancora non mi è chiara del tutto la tua domanda…

     
  8. A me non visualizza la pagina, dice che non la trova… che cosa ho sbagliato? Ho fatto tutto passo passo, poi ho creato la mia pagina .php ed ho sostituito il codice del loop con quello creato ma niente… 🙁

     
  9. In che senso hai creato una pagina? Dovresti intervenire sulla pagina che mostra il contenuto, solitamente index.php e single.php (per il singolo contenuto). Poi bisogna vedere come è strutturato il tuo tema.
    In ogni caso ogni volta che si crea un nuovo tipo di contenuto dovresti andare a salvare di nuovo la struttura dei permalink. Basta anche un semplice salva le modifiche senza cambiare nulla nella struttura dei permalink.

     
  10. Ciao Ilario, ottima guida. Sto facendo qualche prova, non riesco a capire come utilizzare il campo di tipo referencefield, ovvero come mostrarlo nel template. Hai qualche dritta da darmi?

     
  11. Ciao, complimenti per il sito web, è proprio interessante e sono felicissimo di averlo beccato in rete, volevo comunque farti alcune domande inerenti questo specifico articolo.

    Da quel che leggo sei abbastanza esperto, sapresti darmi informazioni simili relative al tema genesis? io lo utilizzo in combinazione con un tema figlio, va che è una bomba, però è strutturato in maniera tale da non ritrovarsi con i tuoi suggerimenti…

    Per fare un esempio, il file single.php o page.php non è presente nella cartella del mio tema figlio, è presente solo in quella di genesis, però aprendoli vi è un bel messaggio che avverte di non toccare nulla e di modificare solo i file del tema figlioccio, come faccio in questo caso?

     
  12. Ciao Franco,
    grazie per i complimenti.
    Il tema Genesis non l’ho mai provato in quanto preferisco creare temi personalizzati da zero e in base a quello di cui ho bisogno.
    Da quello che ho capito il tema figlio eredita tutte le funzionalità del tema principale quindi proverei a lavorare ugualmente nei file single.php e page.php magari facendo una copia di backup dei files.

     
  13. fighissimo! solo una cosa…
    ma dopo aver creato un libro (un post) con i campi personalizzati in con questo plugin, per editarlo nel pannello lo trovo in un menu dedicato o insieme agli articoli standard di wp? insieme alle news per esempio..

     
  14. Dopo aver creato una nuova tipologia di post, appare un menù dedicato nel pannello di controllo.

     
  15. grazie mille! bellissimo! è proprio quello che cercavo 🙂
    solo un’altra cosa..
    nel menu dedicato ora mi appare il link catalogo, aggiungi nuovo, categorie, tag e genere.
    in ‘genere’ trovo le categorie che ho creato mentre in ‘categorie’ trovo “news” ovvero la categoria che ho creato nel menu tradizionale degli articoli. come si può togliere questa voce?
    sto facendo il sito per un mio amico per gestire un catalogo libri ed è poco pratico non vorrei che poi andasse in conflitto con le news..

     
  16. Con le ultime versioni del plugin, in seguito alle pressioni degli utenti, è stata aggiunta la possibilità di utilizzo anche dei tag e delle categorie di default.
    Per rimuoverle dal pannello di modifica del post è necessario andare in alto a destra su “impostazioni schermo” e deselezionare tag e categorie.
    Per quanto riguarda il widget non ho trovato ancora la soluzione al problema

     
  17. ok grazie! non importa… sarò dettagliata nel vademecum per il mio amico.
    grazie mille! 🙂

     
  18. perfetto cosi! 🙂
    altra cosina…
    ho la neccessità di rendere il link della categoria (genere) mezzo statico per includere un’azione javascript all’onclick.
    al momento utilizzo questo codice:

    ma mi serve estrappolare il link.
    ho provato con questo:
    <a href="” title=””>

    ma non funziona :((((
    funziona solo per le categorie che creo nel menu articoli

     
  19. ciao, trovo interessante questo plugin.
    se volessi utilizzare come campo personalizzato il select field, poi nel riquadro valori, in che modo separo le option?? ho provato andanto a capo o con delle virgole, non ce modo di far uscire niente.

    ciau!

     
  20. x jazzyclub
    Per utilizzare il select nel campo impostazioni va settato seguendo questa logica

    Libro di cucina|cucina
    Libro di informatica|informatica

    che equivale al testo e al value del campo option

     

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here