Come gestire i content type in WordPress 3





Uno dei punti di forza di Drupal è la gestione dei tipi di contenuto (Content Type) che permette di creare contenitori di dati personalizzati.

Nelle precedenti versioni di WordPress eravamo costretti, ad utilizzare tabelle esterne per poter simulare una funzionalità simile, ma ora, dalla terza versione, possiamo utilizzare i content type tramite Custom Type e custom Fields.

  • Cos’è un Content Type
  • Come WordPress gestisce i Content Type
  • Come creare e modificare un Content Type
  • Come visualizzare i dati di un Content Type

Cos’è un Content Type

Un Content Type è una struttura adibita a contenere dati.
Wordpress ha come default due tipi di contenuto: post e page. Il primo utilizzato per creare articoli, il secondo per la creazione di pagine.

Entrambi i tipi hanno in comune i campi base per ogni tipo di post :
(id, autore, data, titolo, contenuto, stato)

Se per esempio, vogliamo, gestire un catalogo di film, abbiamo la necessità di gestire un nuovo tipo di contenuto e definire i campi che desideriamo
(es: titolo,trama, regista,attori,locandina) .

In WordPress gestiremo i tipi di contenuto, definendo un nuovo tipo grazie a Custom Post Type, ed un nuovo set di campi grazie ai custom fields.

Nel nostro caso, creeremo un Custom Post Type (film) contenente i campi titolo e trama, e tramite i custom fields aggiungeremo i restanti campi (regista, attori, locandina)

Come WordPress memorizza i Content Type

A differenza di drupal, wordpress memorizza i dati del Content Type in due tabelle : WP_POSTS e WP_POSTMETA (sebbene la struttura viene memorizzata in un record nella tabella WP_OPTIONS)

In WP_POSTS memorizza le informazioni base del tipo di contenuto (id, autore, data, titolo, contenuto, stato, tipo, ecc..) nella seconda i restanti campi (tante righe quanti sono i campi estesi).

Quindi tornando all’esempio precedente per il tipo di contenuto film, i campi titolo e trama verranno memorizzati nella tabella WP_POSTS insieme alle informazioni base di un tipo (id, autore, data, ecc.) mentre per ogni film vi saranno tre righe (regista,attori e locandina) nella tabella WP_POSTMETA

Come creare e modificare un Content Type

A differenza di Drupal, WordPress non ha un interfaccia nativa per la gestione dei content type.
Si può creare e modificare un tipo di contenuto solo via codice

Ma per fortuna vi sono vari plugin che ci permettono di gestire i tipi di contenuto facilmente ed in maniera intuitiva.

Uno dei migliori è Custom Content Type Manager

Come è possibile vedere dalle foto, tramite Custom Content Type manager possiami creare, modificare e cancellare tipi di contenuto. Inserire i campi che vogliamo, con la possibilità di specificare anche il tipo (es. dropdowns, checkboxes, immagini, ecc..)

Una volta creato un content Type bisogna attivarlo per poi vederlo sulla sinistra del nostro pannello di backend, proprio come i tipi di base ( articoli e pagine )

Altre due funzionalità interessanti di questo plugin sono la generazione di un template per tipo e la possibilità di importare/esportare i tipi creati.

Come visualizzare i dati di un Content Type

Quando si visualizzano i dati di un content type, verranno mostrati solo le informazioni base.
Nel caso del contenuto di tipo film solamente il titolo e la trama.

Per visualizzare anche gli altri dati, possiamo utilizzare il template generato automaticamente dal plugin Custom Content Type Manager,
caricando il file single-.php nella cartella del nostro tema (nel nostro caso single-film.php)

Un’altro modo è quello di modificare manualmente il template aggiungendo i campi estesi.
Per far ciò utilizziamo la funzione print_custom_field (‘nomeDelCampo’) oppure get_post_meta($post->ID,’nomeDelCampo’,true)
es

oppure utilizziamo il template generato automaticamente dal plugin Custom Content Type Manager,
caricando il file single-.php nel nostro tema (nel nostro caso single-cinema.php)

Ovviamente, il content type di WordPress non ha la potenza è la versatilità di Drupal, ma può tornare utile in molte occasioni ;)

Seguimi su twitter : @ironico

3 thoughts on “Come gestire i content type in WordPress

  1. Reply Luigi gen 31,2012 18:44

    CIAO Gennaro mi presento sono luigi e sto realizzando un sito per una manifestazione quindi con i vari stand espositori e quant’altro…..

    Con Custom Content Type manager ho creato un “Content Type” chiamato “Espositori” inserendo varie opzioni come :
    – Tipologia
    – Categoria
    – caricamento immagine espositore
    – N° Stand
    etc etc…. e fin qui diciamo tutto ok anche se ho incominciato solo oggi e mi trovo un pò impacciato…..

    ora il mio problema è quello di creare una pagina con una ricerca avanzata per:
    – Tipologia
    – categoria
    – Nome
    che mi richiama gli espositori precedentemente registrati.

    Si può fare tutto ciò con Custom Content Type manager?
    e come integro questa pagina o questo Content Type in modo da poterlo visualizzare sul sito?

    GRAZIE TI RINGRAZIO ANTICIPATAMENTE.

    Luigi

    • Reply Gennaro Varriale feb 1,2012 12:13

      Ciao Luigi,
      ora che hai dati memorizzati nei content type, puoi gestirli in vari modi.
      Per esempio puoi creare una pagina template (cartella del tema) e creare un loop sul tuo content Type :

      Aggiungendo i vari filtri dovresti riuscirci.
      info : http://codex.wordpress.org/Class_Reference/WP_Query

      • Reply Luigi feb 1,2012 13:50

        Ti Rigrazio sei stato molto gentile scusami se approfitto :)
        così mi visualizza tutti i dati inseriti nel mio caso:

        Renato srl
        testo testo

        Elena
        testo

        luigi
        testo testo

        Ovviamente sono delle prove , però i nomi degl espositori non sono dei link..
        e poi sempre se è possibile ti chiedevo:
        1) se è possibile suddividerli per Tipologie , cosa che ho creato con Custom Content Type manager “tipologie” o altri parametri da me fatti
        2) se è possibile avere sempre nella mia pagina personalizzata un search avanzato nel senzo ricerca per nome o per tipologia o per numero stand……

        Non so se mi risponderai anche perchè sono tante richieste me se lo farai te ne sarei grato!!!!1

        TI RINGRAZIO :-)

Leave a Reply

  

  

  

Per essere informato sui miei contenuti - Email: