ebook img

Wordpress: la guida PDF

40 Pages·06.7 MB·Italian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Wordpress: la guida

AApppprrooffoonnddiimmeennttii tteemmaattiiccii Wordpress la guida Passo passo, le principali funzioni del più famoso CMS opensource per la gestione del tuo blog Wordpress: la guida Dall’installazione all’uso dei post personalizzati, dai widget ai plug-in più usati, dai template ad-hoc fino alla realizzazione di un Super Admin per la gestione dei contenuti. Ecco la guida dedicata al più famoso CMS opensource per la gestione di blog: Wordpress. E in più, i tutorial per integrare il modulo Paypal nel tuo blog e usare jquery e Google Maps API. Questo approfondimento tematico è stato pensa- to per chi desidera lanciarsi nel mondo del Web e vuole farlo in maniera professionale, imparando ad utilizzare una piattaforma che, nella sua semplicità disarmante, offre grandi potenzialità. Wordpress, nel suo essere facile da utilizzare, nascon- de innumerevoli funzioni avanzate che posso fare da ago della bilancia nel decretare, o meno, il successo di un blog nell’infinito universo della blogosfera. Wordpress 3.0, tutte le novità ............... 4 Wordpress si aggiorna alla versione 3.0, portando molte novità. scopriamo passo passo come installarlo e come approfittare delle numerose innovazioni introdotte: e se ora fosse meglio di Joomla come CMS? post personalizzati con Wordpress .......... 9 I Custom Post Types di Wordpress 3 rendono il software un potente e completo CMS, adatto anche alla realizzazione di siti aziendali complessi. vediamo come sfruttare la nuova caratteristia per integrare tipi di dati con contenuto personalizzato utilizzare i Widget di Wordpress ............ 13 I widget di Wordpress sono gli strumenti ideali per aggiungere ogni tipo di funzionalità ai propri siti: vediamo come creare un’agenda di appuntamenti utilizzando gli stessi e google calendar integrare paypal nel tuo sito o blog ....... 20 Avere uno strumento per elaborare pagamenti online è ormai una prerogativa di qualsiasi sito che propone servizi e prodotti. Per questo scopo, uno degli strumenti più utilizzati è PayPal. vediamo come utilizzarlo con PhP e Wordpress usa jquery e le google Maps api in Wordpress ........................... 25 Grazie ai plugin, wordpress si presta senza problemi ad ogni esigenza di sviluppo. vediamo come creare un calendario di eventi con un plugin, le librerie jQuery e jQueryUi e, ciliegina sulla torta, le Google Maps creare un teMplate ad hoc per Wordpress ...................... 32 In questo articolo approfondiremo le nuove potenzialità offerte da hTMl5 e da CSS3 per realizzare un completo template “from scratch”, da installare nel nostro blog in Wordpress ecco il super adMin per Wordpress ............................. 36 Come sfruttare una console di comando, utile per amministrare tutti i tuoi blog wordpress insieme. Ti permetterà di ottimizzare la gestione di temi e plug-in, e la pubblicazione multipla dei tuoi post WordWpEreBs s2:. 0la gu ida A ntepriAmnat edpi rWimoar ddpi rWesosr d3p.0ress 3.0 WORDPRESS 3.0 TUTTE LE NOVITÀ WORDPRESS SI AGGIORNA ALLA VERSIONE 3.0, PORTANDO MOLTE NOVITÀ. SCOPRIAMO PASSO PASSO COME INSTALLARLO E COME APPROFITTARE DELLE NUMEROSE INNOVAZIONI INTRODOTTE: E SE ORA FOSSE MEGLIO DI JOOMLA COME CMS? L a versione 3.0 di Wordpress era molto attesa: Wordpress a questo indirizzo http://wordpress.org/ il più famoso CMS opensource per la gestione download/nightly/ (oppure prendete quella presen- di blog si aggiorna, e penso sarete tutti curiosi te nel CD allegato alla rivista) e copiatela sul vostro di scoprire le novità. Anzitutto è stato accorpato server. I requisiti sono assolutamente basilari: PHP Wordpress µ (la versione multiblog del CMS creato da 4.3 e MySQL 4.1.2. Per testare Wordpress su macchine Matt Mullenweg): ora è possibile gestire installazioni Windows potete installare WampServer (http://www. multiple direttamente da Wordpress. È stata final- wampserver.com/): l’installazione di Apache, PHP e mente aggiunta una nuova gestione di menu e tasso- MySQL è semplicissima: un piccolo menu in traybar vi ❑ CD ❑ WEB nomie e, grandissima innovazione, i siti non saranno aiuterà a gestire il vostro server locale. L’installazione più composti unicamente da post e pagine: sarà pos- di Wordpress è altrettanto semplice, come da tradi- wp3.rar sibile creare “custom post” (tipi di articoli) persona- zione. Create un database vuoto e seguite il wizard cdrom.ioprogrammo.it lizzati. Ovviamente ci sono stati decisi miglioramenti di installazione. Ecco la prima novità, piccola ma per quel che riguarda la sicurezza e le funzionalità rilevante: possiamo ora scegliere lo username dell’ac- core del CMS (ad esempio è stata riscritta la gestione count di amministrazione, aumentando la sicurezza dei contenuti multimediali). Infine, piccola ma sim- del nostro CMS. La dashboard non cambia molto patica novitò: Kubrick non è più il tema di default. rispetto alle versioni precedenti, quindi non dovreb- È stato sostituito da TwentyTen (2010) e ogni anno ci sarà un nuovo aggiornamento del tema di default. INSTALLAZIONE Esamineremo molte di queste novità nel corso dell’ar- ticolo, ma partiamo dal setup della nostra macchi- na di test. Scaricate l’ultima versione disponibile di Fig. 2: Il semplice Wizard di installazione di Wordpress 3.0 REQUISITI be essere un problema muovervi tra i menu: non è scopo di questo articolo trattare l’uso di Wordpress, Conoscenze richieste in rete sono presenti molte guide: fate riferimento ai PHP, HTML, CSS, Apache motori di ricerca nel caso abbiate poca dimestichezza con Wordpress. Diamoci da fare e diamo finalmente Software un’occhiata alle novità più rilevanti! Un’installazione di PHP, Database MySQL Impegno I NUOVI MENU Tempo di realizzazione Una delle più grosse limitazioni delle versioni prece- denti di Wordpress riguardava la gestione dei menu: le funzioni wp_list_pages() o wp_menu_page() si Fig. 1: Il menu di WampServer su Windows XP 4 28 / Agosto 2010 http://wWwowr.diopprerosgs:r alam gmuoid.iat AntepriAmnat edpi rWimoar ddpi rWesosr d3p.0ress 3.0 Word pr eWssE:B l a2 g.0uida limitavano a mostrare l’elenco delle pagine presenti all’interno del sistema al massimo aggiungendo un elemento “home” e ordinando e formattando la lista di pagine ritornate secondo criteri impostati dallo sviluppatore. Con Wordpress 3.0 cambia tutto: è stato integra- to all’interno un editor visuale per i menu che vi permetterà di assegnare ciascun menu creato alla sua location (vedremo dopo cosa significa) e di Fig. 4: I quattro menu che abbiamo registrato all’interno modificare con semplici drag&drop il contenuto di del nostro tema ciascun sottomenu: possiamo includere nel menu pagine, url personalizzati (siti esterni o link diretti a nati momenti dell’esecuzione del nostro software post, per esempio) o categorie. Nei temi compatibili in cui possiamo chiamare funzioni che eseguono con questa funzionalità le modifiche si rifletteranno istruzioni PHP. Una volta registrati i menu neces- immediatamente nel template. sari, questi compariranno come caselle da riempire all’interno dell’editor visuale. Per richiamarli all’in- terno del nostro tema basterà invocare la funzione wp_nav_menu() passando i parametri più adatti NOTA alla visualizzazione nel nostro tema. Chiamando la funzione senza argomenti verrà ritornato e stampato il primo menu da noi crea- GLI HOOK IN to. Questo va bene nel caso in cui il nostro tema WORDPRESS supporti un unico menu, ma se vogliamo maggior Wordpress, sin dall’inizio, Fig. 3: Un menu creato con l’editor visuale: ecco come viene visualizzato in TwentyTen controllo possiamo passare diversi argomenti alla ha fornito agli sviluppatori moltissimi hook (actions e funzione inserendoli in un array: tra questi il nome filters per la precisione), del menu da mostrare, le classi css da applicare e adatti allo sviluppo di Vediamo ora come rendere i nostri temi compatibili così via. Un esempio di chiamata per il nostro tema nuove funzionalità (attra- con questa funzionalità. Per prima cosa registriamo potrebbe essere questa: verso i plugin) o alla per- all’interno del template i menu che vogliamo utiliz- sonalizzazione “estrema” di temi. Potete trovare una zare. Possiamo dichiarare quanti menu vogliamo, wp_nav_menu( lista completa degli hook usando la chiamata singola in caso di un solo menu: array( ‘container_class’ => ‘menu-header’, disponibili in Wordpress ‘theme_location’ => ‘secondo’, 2.9 (la versione 3.0 non add_action( ‘init’, ‘registra_menu’ ); ‘depth’ => ‘0’) è ancora stata rilasciata function registra_menu() { ); ufficialmente) all’indirizzo http://adambrown.info/p/ register_nav_menu( ‘primo-menu’, __( ‘Primo’ ) ); wp_hooks/version/2.9 } Il menu chiamato “secondo” sarà visualizzato come una lista non ordinata <ul> all’interno di un con- Oppure la chiamata multipla, per registrare più tainer con classe css menu-header: il visualizza- menu contemporaneamente, addirittura quattro in tore esplorerà il menu in tutta la sua profondità questo caso: (parametro depth uguale a zero). Fate riferimento al codex all’indirizzo http://codex.wordpress.org/ add_action( ‘init’, ‘registra_menu’ ); Template_Tags/wp_nav_menu per la lista com- pleta dei parametri utilizzabili. function registra_menu() { Con questa struttura di menu annidati, diventa register_nav_menus( davvero facile implementare menu multilivello in array( JavaScript, scrivendo il codice appositamente o ‘primo-menu’ => __( ‘Primo’ ), utilizzando uno degli innumerevoli script presenti ‘secondo-menu’ => __( ‘Secondo’ ), in rete e che mappano liste di link in menu con gli ‘terzo’ => __( ‘Terzo’ ), effetti più svariati. ‘quarto’ => __( ‘Quarto’ ) Ricordate: il tema TwentyTen è una ottima palestra ) per imparare ad utilizzare le nuove funzionalità ); di Wordpress 3.0. Esaminate il codice per capire } come sono implementati i menu e ricordate che per i più pigri è disponibile un widget (vi basterà attivarlo) che mostrerà i nostri menu nelle sidebar Cosa succede? Abbiamo agganciato all’hook di ini- abilitate a contenere widget: è comunque necessa- zializzazione la funzione registra_menu(). Gli hook rio registrare i menu utilizzando le funzioni viste in in Wordpress sono appunto “agganci” a determi- precedenza. Whtotprd:/p/rweswsw: l.aio gpuroidgarammo.it Agosto 2010 / 29 5 WordWpEreBs s2:. 0la gu ida A ntepriAmnat edpi rWimoar ddpi rWesosr d3p.0ress 3.0 TASSONOMIE array( ‘post’ ), PERSONALIZZATE array( C’erano una volta i tag: parole associate agli articoli ‘public’ => true, di un blog che ne definivano sommariamente il ‘labels’ => array( contenuto: se un post ad esempio parla di automo- ‘namÈ => __( ‘Attori’ ), bili FIAT è possibile che i tag ad esso associati siano ‘singular_namÈ => __( ‘AttorÈ ) fiat, automobili, nuovo modello, ecc… ), Le tagcloud sono una delle più efficaci rappresenta- ) ziono grafiche dei tag e sono costituite dai tag stessi ); mostrati con font tanto più grandi quanto il tag è } maggiormente utilizzato. In Wordpress 3.0 si va oltre il concetto di tag passan- Ecco fatto. Abbiamo creato la nostra tassonomia do al concetto di tassonomia. Wikipedia definisce la “Attori” che possiamo assegnare ai nostri post e alle Tassonomia come la classificazione gerarchica di nostre pagine (o custom post, che esamineremo più concetti, e il principio stesso della classificazione. avanti nell’articolo). Fig. 6: La tassonomia “attori” NOTA WORDPRESS Fig. 5: Un esempio di tagcloud Come potete vedere in figura, è stata creata un’ap- E BUDDYPRESS posita voce di menu per questa tassonomia, mentre Wordpress è il sistema nel pannello di scrittura dei post vedremo una alla base di alcuni dei più Praticamente tutti i concetti, gli oggetti animati e nuova casella “Attori” dove potremo selezionare i famosi blog italiani e stra- non, i luoghi e gli eventi possono essere classificati tag della tassonomia appena creata. nieri. La sua semplicità ne seguendo uno schema tassonomico. La tassonomia Come visualizzare queste tassonomie nella pagina ha fatto lo strumento idea- le per creare sistemi multi- è la scienza che si occupa genericamente dei modi dei post? Basterà aggiungere al template (all’inter- blog in pochissimo tempo. di classificazione (degli esseri viventi e non). Quindi no del loop Wordpress) la chiamata alla funzione BuddyPress (http://bud- per esempio la tassonomia di un album musicale get_the_term_list( $post->ID, ‘attori’); per recupera- dypress.org/) invece è un può essere data dagli artisti che l’hanno composto, re tutti i tag per la tassonomia “attori” legati a quel altro prodotto Automattic mentre i film prodotti nel XX secolo potrebbero particolare post. Facile, no? composto da una serie di plugin per Wordpress che essere catalogati per gli attori che li hanno recitati. permettono a Wordpress Wordpress si comporta allo stesso modo: passa da di diventare un social net- una tassonomia semplice (i tag) ad una tassonomia work a tutti gli effetti! più complessa e completa, completamente gerar- chica, dove possiamo creare nostre tassonomie, composte a loro volta da tag. Per creare una nostra tassonomia procediamo come per i menu: registriamo la nostra tassonomia e questa comparirà nel pannello di amministrazio- Fig. 7: La casella per la tassonomia “attori” nella pagina di scrittura dei post ne di Wordpress. Pensiamo ad esempio ad un blog che parla di film. Possiamo creare la tassonomia “Attori” e creare tag ad essa appartenenti che non sono altro che gli attori che vi hanno preso parte. Per cosa possiamo usare le tassonomie persona- lizzate? Pensate ad un catalogo di abbigliamento online magari associato ad uno dei tanti plugin che add_action( ‘init’, ‘tassonomia_attori’); trasformano Wordpress in un sistema di ecommer- ce come WP-ecommerce http://wordpress.org/ function tassonomia_attori() { extend/plugins/wp-e-commerce/. Potete crea- re diverse tassonomie (colori, taglie, stile, tessuto, register_taxonomy( ecc…) da assegnare a ciascun prodotto per creare il ‘attori’, vostro catalogo come più vi piace. 6 30 / Agosto 2010 http://wWwowr.diopprerosgs:r alam gmuoid.iat AntepriAmnat edpi rWimoar ddpi rWesosr d3p.0ress 3.0 Word pr eWssE:B l a2 g.0uida POST PERSONALIZZATI ‘parent’ => __( ‘Podcast superiorÈ ), Wordpress 3.0 introduce la possibilità di creare post ), personalizzati (custom post): attenzione però… Si parla di post nel significato più generico di “oggetto ‘public’ => true, facente parte di un blog Wordpress”, quindi nel ‘show_ui’ => true, corso dell’articolo la parola post potrebbe riferirsi ‘capability_typÈ => ‘post’, ad una pagina, un articolo o addirittura un menu. ‘hierarchical’ => false, La documentazione originale li chiama “custom ‘supports’ => array(‘titlÈ, ‘editor’, ‘author’) post”, ci adegueremo quindi a questa denomina- )); zione. A cosa servono i custom post? A moltissime } cose: possiamo trasformare il nostro blog in un sito di annunci immobiliari ad esempio, creando un Cosa è successo? Abbiamo aggiunto una nuova custom post “annunci” oppure possiamo creare voce di menu al nostro Wordpress. Cliccando sul un custom post “fotografie” se usiamo il blog come menu visualizzeremo una pagina in tutto e per tutto portfolio fotografico o ancora creare un custom post simile a quella dei post, ma denominata “Podcast”. “podcast” se siamo aspiranti DJ. La chiamata register_post_type() accetta un nume- I custom post trasformano Wordpress in un CMS ro molto elevato di parametri. L’array labels per avanzato: infatti, a tutti questi contenuti “specia- cominciare si occuperà di impostare le etichette per li”, possiamo aggiungere campi personalizzati per i pulsanti del nostro pannello, come potete vedere rendere ancora più “custom” il template che poi in Fig.8. A seguire ci sono alcuni parametri che per- andremo ad utilizzare per inserire quel particolare mettono di impostare come i nostri podcast saran- contenuto: un po’ come avviene in Joomla o Drupal, no visualizzati o gestiti: il parametro public imposta ma in maniera infinitamente più semplice. la “privacy” o meno dei nostri podcast, show_ui Un esempio pratico ci chiarirà le idee. Poniamo permette di attivare il pannello podcast nelle nostre di essere un aspirante DJ che vuole aggiungere la pagine di amministrazione. Per concludere, una propria lista di podcast ad un blog Wordpress: per lista di parametri che imposta la visualizzazione caricare gli mp3 dei podcast ci appoggeremo al del custom post appena creato: capability_type è media manager di Wordpress, mentre creeremo un parametro che imposta il “comportamento” del un custom post “podcast” per gestire gli articoli di nostro contenuto: in questo caso deve comportar- questa particolare categoria: attenzione però, non si si come un post (articolo) del blog. Il parametro tratta di una categoria di Wordpress personalizzata, hierarchical definisce se il nostro custom post può ma si tratta di un vero e proprio oggetto “differente” essere organizzato gerarchicamente (struttura ad dai normali post di Wordpress con sue peculiarità albero: nel caso dei podcast potremmo attivarlo per e possibilità molto maggiori rispetto ad un classico creare serie composte da più puntate organizza- post o una pagina. te gerarchicamente). L’array supports indica quali Ecco la chiamata che serve per registrare il nuovo sono le feature che il custom post può supportare: custom post “podcast”. Anche questa si appoggerà commenti, trackback, revisioni, ecc… all’hook “init”, come visto in precedenza. Con questa prima semplice impostazione possiamo già creare i nostri podcast come fossero articoli del add_action(‘init’, ‘crea_custom_podcast’ ); blog, ma come potete vedere non saranno visua- lizzati nella home del nostro blog, se non verranno function crea_custom_podcast() { richiamati esplicitamente nel template o nel menu register_post_type(‘podcast’, array( (nell’immagine potete vedere il widget creato auto- ‘labels’ => array( maticamente da Wordpress per il nostro custom post ‘namÈ => __( ‘Podcast’ ), “podcast”). I custom post hanno indirizzi come que- ‘singular_namÈ => __( ‘Podcast’ ), ‘add_new’ => __( ‘Aggiungi Podcast’ ), ‘add_new_item’ => __( ‘Aggiungi nuovo Podcast’ ), ‘edit’ => __( ‘Modifica’ ), ‘edit_item’ => __( ‘Modifica Podcast’ ), ‘new_item’ => __( ‘Nuovo Podcast’ ), ‘view’ => __( ‘Visualizza Podcast’ ), ‘view_item’ => __( ‘Visualizza’ ), ‘search_items’ => __( ‘Cerca Podcast’ ), ‘not_found’ => __( ‘Nessun Podcast trovato’ ), ‘not_found_in_trash’ => __( ‘Nessun Podcast trovato nel cestino’ ), Fig. 8: Immagine che evidenzia il nuovo menu creato e l’utilizzo delle label personalizzate Whtotprd:/p/rweswsw: l.aio gpuroidgarammo.it Agosto 2010 / 31 7 WordWpEreBs s2:. 0la gu ida A ntepriAmnat edpi rWimoar ddpi rWesosr d3p.0ress 3.0 sto www.mioblog.it/?post_type=podcast&p=1, portando Wordpress al di fuori del classico ambito dove post_type è il nome del custom post creato e il di “cms per blog” per realizzare qualunque sito vi parametro p è l’id dell’oggetto. possa venire in mente in tutta semplicità. In realtà manca ancora “un pezzo” importante del nostro custom post: come si fa ad aggiungere campi Fig. 10: I campi personalizzati che possiamo visualizzare per i nostri podcast Fig. 9: I nostri custom post nell’editor visuale del menu GESTIRE IL MULTIBLOG Come abbiamo già detto all’inizio dell’articolo, personalizzati al nostro podcast? Aggiungiamo delle Wordpress e Wordpress µ sono ora uniti in un azioni sempre in functions.php, possiamo aggiun- unico prodotto: per gli utenti di Wordpress 2.9.x gere la durata del podcast ad esempio (possiamo che aggiornano a Wordpress 3.0 non cambia eventualmente calcolarla in maniera dinamica) o nulla, così come non cambierà nulla per chi l’autore del podcast (recuperato attraverso l’oggetto ha già un’installazione di Wordpress attiva $post di Wordpress) e aggiornerà alla versione 3.0. Solo in fase di nuova installazione ci verrà chiesto se vogliamo add_action(“manage_posts_custom_column”, gestire un singolo blog o un multiblog, mentre “colonne_custom”); sarà possibile convertire un’installazione sin- add_filter(“manage_edit-podcast_columns”, gola di Wordpress 3.0 in una “multipla” con “colonne_podcast”); un tool apposito che verrà rilasciato prossi- mamente da Wordpress.org. La procedura di function colonne_podcast($columns) installazione è assolutamente semplice anche in { questo caso. Prima di cominciare l’installazione L’AUTORE $columns = array( aggiungete la riga : “cb” => “<input type=\”checkbox\” />”, Francesco Napoletano è “title” => “Titolo”, define(‘WP_ALLOW_MULTISITÈ, true); socio della Piko Design “description” => “Descrizione”, (www.pikodesign.it) dove “length” => “Lunghezza”, al file wp-config.php, Wordpress farà il resto. si occupa di tutta la parte “speakers” => “Autore”, Ovviamente, create network di blog su server di sviluppo web (dal PHP al JavaScript, passando per “comments” => ‘Commenti’ abbastanza carrozzati per reggere il carico e non Flex ed actionscript 3.0). ); su hosting condiviso con poche risorse! Il suo blog www.napolux. return $columns; com è tra i più conosciuti } nell’ambiente web italiano. function colonne_custom($column) ...ED È OPENSOURCE! { Abbiamo dato un’occhiata alle novità più impor- global $post; tanti di Wordpress 3.0: la versione finale non è if (“ID” == $column) echo $post->ID; ancora uscita, ma la 3.0 si appresta ad essere elseif (“description” == $column) echo substr($post- una versione di svolta per il CMS creato da Matt >post_content,0,30) . “...”; Mullenweg. Facilità d’uso, estrema personalizza- elseif (“length” == $column) echo “12:34”; zione e facilità di creazione dei template sono i elseif (“speakers” == $column) echo $post->post_ suoi punti di forza. Wordpress è un CMS che non author; può mancare nella nostra collezione di prodotti } opensource: offrire ai clienti soluzioni basate su Wordpress non è più un tabù e con questa Con la prima funzione, dichiariamo le colonne nuova versione possiamo affrontare le richieste personalizzate che dovremmo visualizzare, men- del mercato con maggiore fiducia nell’offrire un tre con la seconda imposteremo i valori per tali prodotto completo, moderno ed estremamente colonne. Come avete potuto capire, i custom post personalizzabile. sono uno strumento davvero molto flessibile: pote- te organizzare i vostri contenuti come più vi piace, Francesco Napoletano 8 32 / Agosto 2010 http://wWwowr.diopprerosgs:r alam gmuoid.iat I CWusEtBo m2. 0Post TI Cypuestso dmi WPoosrtd TPyrpeesss d3i .W0ordPress W3.0ordpress: la guida POST PERSONALIZZATI CON WORDPRESS I CUSTOM POST TYPES DI WORDPRESS 3 RENDONO IL SOFTWARE UN POTENTE E COMPLETO CMS, ADATTO ANCHE ALLA REALIZZAZIONE DI SITI AZIENDALI COMPLESSI. VEDIAMO COME SFRUTTARE LA NUOVA CARATTERISTIA PER INTEGRARE TIPI DI DATI CON CONTENUTO PERSONALIZZATO Una delle novità più attese e discusse della versione proporre ai lettori un archivio di gruppi musicali con le rela- 3.0 di WordPress è il supporto dei tipi di contenuto tive produzioni discografiche. Vedremo, infatti, come creare personalizzati. La nuova feature permette a WP di due diversi tipi di post, uno per le informazioni sugli artisti e fare il salto di qualità e passare da sistema di gestione di uno per le informazioni sugli album. Vedremo come associa- blog a vero e proprio CMS: personalizzare i tipi di contenuto, re ad ognuno dei due tipi le proprie “custom taxonomies” e, infatti, permette di creare complesse architetture di dati, infine, come mandarli a video nel front-end di WP in modo che consentono di utilizzare WP anche per lo sviluppo di siti diverso. aziendali complessi. ❑ CD ❑ WEB Ed è ciò che dimostriamo in questo articolo: questo mese, wp_custom_post_types.rar infatti, vedremo come utilizzare i “custom post types” per cdrom.ioprogrammo.it creare un archivio discografico nel quale verranno messi ATTIVIAMO I CUSTOM POST TYPES in relazione artisti e pubblicazioni discografiche, estraendo completamente i contenuti dal normale ciclo iterativo che Attualmente, per creare nuovi tipi di post, sono percorribili manda a video i post in WP. due strade: ricorrere ad uno dei plug-in disponibili gratui- tamente nella repository o integrare il file functions.php del template corrente con il codice necessario (forse preferibile dal programmatore). Nel nostro sito discografico avremo I CUSTOM POST TYPES bisogno di aggiungere due tipi di post: uno destinato ad Il termine può trarre in inganno: non si tratta solo di post, ma ospitare le schede degli artisti, uno destinato alle schede di tipi di contenuto strutturati in base alle specifiche esigenze degli album. Vediamo come generare il primo tipo: dell’utente. L’istallazione base di WP supporta i seguenti tipi di post: post, page, attachment, revisions, nav_menu e sono add_action(‘init’,’register_groups’); tutti ospitati nella tabella wp_posts del database. Ciò che function register_groups() { cambia tra i vari tipi è il valore del campo post_type. $labels = array( Qualcuno potrebbe chiedersi perché utilizzare i “custom post ‘name’ => _x(‘Groups’, ‘post type general name’), types” e non, magari, le “custom taxonomies”. Apportando le ‘singular_name’ => _x(‘Group’, ‘post type singular name’), opportune modifiche al tema, sarebbe comunque possibile ‘add_new’ => _x(‘Add New’, ‘group’), personalizzare la visualizzazione dei post. La risposta non è ‘add_new_item’ => __(‘Add New Group’), univoca: lavorando con WP ci si trova spesso nella condizione ‘edit_item’ => __(‘Edit Group’), Conoscenze richieste di poter raggiungere lo stesso obiettivo adottando soluzioni ‘new_item’ => __(‘New Group’), Buona conoscenza di diverse. Spesso, infatti, potrebbe essere più opportuno (o ‘view_item’ => __(‘View Group’), PHP; buona conoscenza di WordPress comodo) utilizzare le “custom taxonomies”. Ma allora come ‘search_items’ => __(‘Search Group’), Software decidere? Un criterio potrebbe essere quello di individuare i ‘not_found’ => __(‘No groups found’), Web server con Php5 tipi di contenuto in base ad elementi strutturali: ad esempio, ‘not_found_in_trash’ => __(‘No groups found in Trash’), e MySQL, in ambiente *nix. In locale è con- una FAQ potrebbe essere strutturalmente diversa da un post, ‘parent_item_colon’ => ‘’, ‘menu_name’ => ‘Groups’); sigliato il pacchetto XAMPP, scaricabile organizzata e visualizzata in maniera autonoma, magari con $args = array( ‘labels’ => $labels, ‘public’ => true, all’indirizzo http:// www.apachefriends. tassonomie diverse. Lo stesso potrebbe dirsi per la scheda ‘publicly_queryable’ => true, ‘show_ui’ => true, ‘show_ org/it/xampp.html di un libro, per un prodotto in un catalogo e così via. Ciò in_menu’ => true, ‘query_var’ => true, ‘rewrite’ => true, Impegno che è importante ricordare, comunque, è che le possibilità ‘capabili ty_type’ => ‘post’, ‘has_archive’ => true, ‘hierar di personalizzazione offerte dai “custom post types” sono chical’ => false, ‘menu_position’ => null, ‘supports’ => Tempo di realizzazione decisamente maggiori rispetto a quelle offerte da categorie, array(‘title’,’editor’,’thumbnail’,’excerpt’)); tag e tassonomie. register_post_type(‘group’,$args); Nell’impostazione di questo articolo, abbiamo pensato di flush_rewrite_rules(); } W 3o6rd p/r eFsesb: blara giou 2id0a11 http://www.ioprogramm9o. it Wordpress: la guIi dCau sto m PosIt TCyupsetos mdi PWoosrtd TPyrepsess 3 d.0i WordWPrEeBs s2 .30.0 All’avvio di WP viene invocata la funzione register_groups(). All’interno di questa funzione vengono generati due array: il primo ($labels) provvede all’assegnazione delle etichette che vengono visualizzate nel pannello di amministrazione e costituisce uno degli elementi del secondo array; $args impo- sta una serie di parametri che stabiliscono il funzionamento del tipo di post. Per una lettura dettagliata degli argomenti del secondo array, rinviamo al codex (http://goo.gl/tJxCe); qui ci soffermiamo solo sull’argomento supports. Questo permette di definire gli elementi del form che appariranno nel pannello di amministrazione, in fase di inserimento e modifica dei contenuti. Nel nostro primo “custom post type” saranno attivi i campi del titolo, l’editor del testo, il link per l’inserimento dell’immagine di anteprima, il campo dell’estratto del testo. Una volta definiti i valori degli elementi Fig. 1: Una volta registrata una nuova tassonomia, questa appare degli array, la funzione register_post_type(‘group’,$args) com- nel menu di sinistra del back-end di WordPress pleta il lavoro e registra il tipo group. In ultimo, per evitare NOTA eventuali problemi nella lettura dei permalink, forziamo il refresh delle regole di rewriting memorizzate, con la funzio- array(‘hierarchical’ => true, ‘label’ => “Genres”, REQUISITI DI SISTEMA ne flush_rewrite_rules(). ‘singular_label’ => “Genre”, ‘rewrite’ => true)); } Per provare le feature di WordPress di cui abbiamo parla- to in queste pagine, consigliamo Le tassonomie vengono registrate all’avvio di WP. Se ne fortemente di utilizzare sistemi occupa la funzione register_taxonomy(), alla quale passiamo *nix, dato che sono diverse REGISTRARE I CUSTOM FIELDS i seguenti argomenti: le incompatibilità rilevate in Una volta definito il tipo di post, possiamo associarvi dei • una stringa con il nome della tassonomia ambiente Windows. campi personalizzati destinati ai metadati. Nel caso del tipo • un array con gli ID dei tipi di post cui associare la tasso- L’elenco dettagliato dei requisiti di sistema è disponibile all’in- di post group, ci servirà un solo campo, destinato ad inserire nomia dirizzo http://codex.wordpress. l’anno di costituzione del gruppo: • un array con una serie di parametri aggiuntivi (per l’elenco org/Hosting_WordPress. di parametri, rinviamo al codex: http://goo.gl/Qte64) add_action(‘admin_init’, ‘register_groups_fields’); function register_groups_fields() { Apriamo ora il pannello di amministrazione e diamo un’oc- add_meta_box(‘year’, ‘Year’, ‘year’, ‘group’,‘side’,‘low’);} chiata alla scheda “New Group”. Noteremo un box laterale function year() { che ci permetterà di inserire nuovi termini, esattamente allo global $post; $custom = get_post_custom($post->ID); stesso modo delle categorie dei normali post. $year = $custom[“year”][0] ?> NOTA <label>Year:</label> <input name=”year” value=”<?php echo $year; ?>”/> AVVERTENZA <?php } IL SALVATAGGIO DEI DATI Il codice presentato nei nostri Provvediamo ora al salvataggio dei dati: esempi non è completo. Per esigenze di spazio non si La funzione add_meta_box() aggiunge il campo year. è provveduto alla gestione di Gli argomenti che questa accetta impostano l’ID del campo, add_action(‘save_post’, ‘save_group_meta’); eventuali errori nel recupero il titolo, il nome di una funzione di callback, il tipo di post cui function save_group_meta() { global $post; dei dati. Nelle istallazioni di associare il campo, l’area della pagina dove caricarlo, infine la update_post_meta($post->ID, ‘year’, $_POST[‘year’]); } WordPress su cui è stato testato priorità. La funzione di callback year() genera il codice HTML il codice riportato, tuttavia, non sono stati rilevati errori di sorta. del campo. Il valore del campo, se esiste, viene generato A questo scopo utilizziamo l’hook save_post per invocare grazie alla variabile $post. la nostra funzione save_group_meta(). Qui la variabile glo- bale $post ci fornisce l’ID del contenuto corrente. Questo viene passato come primo argomento della funzione upda- te_post_meta(), insieme alla chiave e il valore del “custom REGISTRARE field”. Ora tutto è pronto per l’inserimento dei dati. Possiamo LE CUSTOM TAXONOMIES cominciare ad inserire le nostre band preferite (attenti, però: Secondo la stessa logica, registriamo le tassonomie del ancora non possiamo vederle nel front-end). nostro tipo di contenuto. Nel nostro esempio registriamo il genere cui si ispira l’artista (o la band): add_action(‘init’, ‘register_custom_taxonomies’); AGGIUNGIAMO GLI ALBUM function register_custom_taxonomies(){ Una volta definito il tipo Group, possiamo passare a lavorare register_taxonomy(“Genres”, array(‘group’), sul tipo Album. Le funzioni di WP necessarie sono esatta- h 1ttp0://www.ioprogrammo.it FeWbborradiop r2e0s1s:1 l a/ g3u7id a

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.