WordPress: abilitare Polylang alla traduzione di custom post

Un pratica comune per gli utenti di WordPress è quella di acquistare template professionali già pronti. Questi template sono in genere molto ben strutturati e molto spesso sono ricchi di post personalizzati (custom post) per rispondere alle più disparate esigenze. Ad esempio se il template è studiato per alberghi e hotel, troveremo post personalizzati per le camere, i servizi, ecc.
Ora il problema è che se utilizziamo Polylang per la gestione delle traduzioni, i custom post non sono di default abilitati alle traduzioni.
Esiste però un metodo molto semplice per abilitare i post personalizzati utilizzando una funzione pubblica di Polylang:
pll_get_post_types
Vediamo come: inseriamo il seguente codice nel file functions.php che si trova nella directory del tema attivo, verificando prima che Polylang sia installato e attivo con l’istruzione: function_exists('pll_the_languages'

if (function_exists('pll_the_languages')){
	add_filter( 'pll_get_post_types', 'add_cpt_to_pll', 10, 2 );
	 
	function add_cpt_to_pll( $post_types, $is_settings ) {
		
		if ( $is_settings ) {
			// Ammettiamo di voler abilitare i custom post di tipo "cpt_room"
                        // Nascondiamo 'my_cpt' dall'elenco dei tipi di post personalizzati nelle impostazioni Polylang
			unset( $post_types['cpt_room'] );
			
		} else {
			// Abilitiamo le traduzioni per i custom post 'my_cpt'
			$post_types['cpt_room'] = 'cpt_room';
		}
		return $post_types;
	}
}

E il gioco è fatto, compariranno gli strumenti per le traduzioni su tutti i post di tipo “cpt_room”! Ovviamente è possibile aggiungere tutti i custom post che si vuole.

RIferimento: pll_get_post_types

Internet 2016: statistiche, fatti e curiosità

Riportiamo un elenco di curiosità e statistiche su Internet rilevate recentemente e pubblicate in: Internet stats & facts for 2016, un autorevole sito votato all’analisi del mondo del Web.

Ci colpiscono in particolare: la travolgente crescita dell’utilizzo di dispositivi mobili quali smartphone e tablet, l’incremento dell’uso delle vendite e-commerce, il numero di robot che girano per la rete (siano essi “buoni” o “cattivi”), la consacrazione di WordPress come piattaforma per la realizzazione di siti Web, l’importanza della velocità di caricamento delle pagine di un sito web, il numero di attacchi giornalieri da parte degli hacker.

Leggi tuttoInternet 2016: statistiche, fatti e curiosità

Come ridimensionare immagini in serie con Windows

L’elevata risoluzione delle macchine fotografiche digitali attuali genera files di elevate dimensioni in Mb, mentre le dimensioni in pixel superano frequentemente i 4000px sul lato lungo, si rende dunque necessario ridimensionare le immagini prima di poterle incorporare negli articoli pubblicati sul Web. Se dobbiamo aggiungere una serie di immagini si rivela molto utile uno strumento che sia in grado di effettuare il ridimensionamento in un unico passaggio.

Leggi tuttoCome ridimensionare immagini in serie con Windows

Alcuni consigli per la scelta delle password da utilizzare su Internet

E’ noto che il momento di inserire una nuova password è per gli utenti del Web causa di momenti di smarrimento, in genere la pigrizia e l’indolenza prendono il sopravvento e il risultato del ponderoso sforzo mentale normalmente si materializza in “ma sì, utilizzo la solita“, oppure “ma va bene: 123456” oppure “nome01“.
E’ chiaro che non ci si rende conto del grosso errore che si sta commettendo, utilizzare password deboli se non debolissime è un po’ come lasciare le chiavi del portone di casa nella buca delle lettere. Nulla di che per la gente onesta, una manna per i ladri. Il fatto è che il mondo, e Internet non sfugge alla regola, è pieno di ladri…

Leggi tuttoAlcuni consigli per la scelta delle password da utilizzare su Internet

Contenuti dei siti web: perché è inutile (e controproducente) bloccare il copia e incolla

Molti blogger e autori di testi di siti Web, infastiditi dal fatto che qualcuno possa copiare il contenuto che pubblicano, ricorrono al blocco del “copia e incolla”.
Cosa utilizzano per non permettere al lettore il “copia e incolla”: non ci sono molte alternative, si ricorre a qualche riga di script javascript che disabilita le normali funzionalità del browser. Eh sì, perché la caratteristica di poter selezionare il testo e copiarlo nella memoria del PC (o dello smartphone) sta nel browser, dunque siamo a “casa” dell’utente (in gergo tecnico: lato client). E siccome ognuno è padrone a casa sua, ecco che l’utente che non sia proprio a terra con l’utilizzo della tecnologia sa bene come aggirare l’ostacolo.
Di seguito, alcuni esempi su come rendere inefficace il blocco del “copia e incolla” adatti a tutti:

  • Disabilitare temporaneamente tutti gli script javascript. Questo è il metodo che funziona praticamente sempre, come si ottiene? Ci sono diversi plugin per facilitare le cose (ad esempio Web Developer per Mozilla Firefox), ma in ogni caso quasi tutti i browser danno nativamente questa possibilità: qui c’è un abbondante elenco.
  • Stampare su file la pagina con formato PDF. E’ molto facile installare una stampante virtuale PDF sul proprio PC (su Windows ecco il link), e una volta fatto sarà sempre possibile stampare qualsiasi pagina web direttamente su un file PDF dal quale copiare e incollare liberamente ciò che si vuole.
  • Utilizzare un dispositivo touch screen (uno smartphone, un tablet, ecc). I dispositivi touch non reagiscono allo stesso modo con gli eventi di selezione testo provocati dal mouse o dalla tastiera e se lo script non è ben fatto, con questi dispositivi rimane sempre possibile copiare e incollare liberamente in barba al blocco!

Ci sono altri metodi più sofisticati per aggirare questa limitazione che, alla luce di quanto detto, appare piuttosto fragile, ma non ho intenzione di dilungarmi su questo aspetto.
Vediamo piuttosto quali sono gli effetti collaterali che spesso si presentano a chi mette in atto queste restrizioni:

  • Se lo script è mal progettato e imperniato genericamente sull’evento onCLick(), allora agirà anche per i link che non si vuole bloccare. Dunque si “impedisce” il copia e incolla, ma si impedisce anche la navigazione dei link del proprio sito. Se si sta bloccando il testo di un articolo al quale viene data la possibilità di commentare, si impedirà anche quella e nemmeno i pulsanti di condivisione sui social funzioneranno più.
  • Se qualcuno, interessato all’articolo volesse legalmente citarlo riportando l’autore e la fonte (art. 70 l. 633/41), deve ricorrere alle strategie che ho descritto sopra e, probabilmente proprio per il fatto che l’autore ha messo il blocco, desisterà dal farlo.

Questi effetti collaterali sono decisamente in contrasto con quanto normalmente un autore vuole quando pubblica contenuti sul proprio sito. E’ naturale che si voglia che il lettore navighi più tempo possibile fra le pagine del blog e condivida il più possibile i propri contenuti.

Ora, siccome la legge già tutela sufficientemente gli autori:

Qualsiasi testo originale, che abbia il carattere minimo di creatività è dunque protetto di diritto, senza bisogno di particolari adempimenti o avvertenze, pure se espresso in forma orale (ad es. la fonoregistrazione di un’opera di teatro) […]. cit: Studio Legale Online

e tanto basta se viene comprovata una infrazione a richiedere i danni a chi ha infranto la legge. Quel che intendo è: se una strada all’ingresso ha un divieto di transito, non serve metterci un cancello davanti legato con lo spago!
Dunque, considerati gli effetti collaterali non proprio desiderabili degli innocui impedimenti tecnologici, ci chiediamo: il gioco vale la candela?

Infine, un’ultima considerazione: se qualche disonesto vuole copiare i nostri scritti, è chiaro che proprio per il fatto di agire in modo scorretto, non si farà molti scrupoli ad aggirare i paletti, anzi, proprio per il fatto che sono state messe barriere avrà maggior godimento nell’aggirarle! D’altra parte una persona corretta che volesse solo citare legalmente la nostra opera, proprio per il fatto di essere abituato a rispettare le regole si guarderà bene dal farlo. Ed ecco spiegato anche perché nel titolo ho messo “… è inutile e controproducente“!

Riferimenti e approfondimenti:

Come scrivere correttamente la punteggiatura (sul web e non)

Navigando sul Web, ci si imbatte frequentemente in testi formattati in maniera scorretta e spesso anche poco decifrabile. Questo tipo di errori è causato sia da una scarsa cura nella scrittura del linguaggio che da un uso errato della spaziatura nella punteggiatura. Ci sono delle regole che dovrebbero essere sempre rispettate soprattutto nella videoscrittura perché le macchine non sono in grado di interpretare il senso del contenuto.

Le regole principali sono:

  • I segni di punteggiatura devono sempre essere adiacenti (senza spazi) alla parola precedente e seguiti da uno spazio, e non viceversa.
  • Le parentesi e le virgolette si aprono adiacenti alla parola che segue e si chiudono adiacenti alla parola che le precede.
  • Trattini (segno -): lo spazio va posto sia prima che dopo. Per esempio: “Fermati – disse Mario – e lui si fermò.”
  • L’apostrofo non vuole spazi né prima né dopo.
  • Il trattino di unione (p.e.: e-commerce) non vuole spazi né prima né dopo.
  • Gli elementi separatori (trattini o slash) nelle date (p.e.: 22-03-2016 o 22/03/2016) non vogliono spazi né prima né dopo.

I segni di punteggiatura sono:

  • la virgola {,}
  • il punto e virgola {;}
  • i due punti {:}
  • il punto interrogativo {?}
  • il punto esclamativo {!}
  • i puntini di sospensione {…}
  • l’indicatore di numero ordinale {°}

Per ultimo alcuni consigli di “educazione grammaticale”:

  • I puntini di sospensione sono sempre e solo tre…
  • Non utilizziamo troppi punti esclamativi, uno basta e avanza!
  • Ed evitiamo di mettere il punto al termine di un titolo. (ma questo non è un titolo!)

Riferimenti:

WordPress: come disabilitare l’aggiornamento automatico di un tema

Utilizzando il CMS WordPress capita sovente di dover modificare i template di un tema che funge da base per la costruzione di un sito web personalizzato. Come spiegato in questo articolo, la soluzione migliore è di derivare un tema figlio in maniera che qualsiasi aggiornamento del tema padre (quello che funge da base) non sovrascriverà le modifiche fatte nei template.

Leggi tuttoWordPress: come disabilitare l’aggiornamento automatico di un tema

Come inserire un video YouTube in una pagina web in modalità responsive e leggera

di Mario Spada

Quando si inserisce un video YouTube in una pagina web, seguendo la normale procedura di copiare il codice che contiene l’iFrame fornito da YouTube, si rimane spesso insoddisfatti dell’eccessivo tempo di caricamento della pagina. Ci siamo dunque chiesti se esiste un sistema alternativo per velocizzare il caricamento.

Il metodo esiste ed è ben illustrato in questo articolo di Amit Agarwal (in inglese): A More Efficient Method for Embedding YouTube Videos

Il metodo utilizzato da Amit è di caricare mediante uno script javascript solo l’immagine del video e il pulsante del video in modo che sembri un player vero e proprio. Solo quando viene premuto il pulsante viene caricato il video player, in questo modo le risorse extra vengono caricato solo quando serve.

Inoltre sono presenti alcuni accorgimenti nel CSS che deve accompagnare lo script per rendere “responsive” il comportamento dell’iFrame che, normalmente non lo è. Infatti è proprio con i dispositivi mobile che è richesta una maggior velocità di caricamento considerando le minori capacità in termini di prestazioni dell’hardware e soprattutto la spesso scarsa velocità di connessione quando sono fuori da un collegamento WiFi.

Vediamo dunque il codice necessario, per prima cosa l’HTML:

ed ora lo script javascript:

%MINIFYHTMLf7baa8ae0f231fbba514b10ec8e023da5%

ed infine il CSS per formattare correttamente il tutto:

Il gioco è fatto!
Potete vedere un esempio qui (ci sono anche i tempi di caricamento sia del video caricato con il metodo tradizionale che con quello sopra descritto).

Riferimento: A More Efficient Method for Embedding YouTube Videos

Sviluppi (un plugin per WordPress): WordPress: un plugin per caricare video YouTube in modo veloce, leggero e responsive

WordPress: cosa è un tema figlio (child theme) e perché utilizzarlo

di Mario Spada

WordPress è in assoluto il più diffuso CMS al mondo e detiene il 40% delle installazioni sui siti web che utilizzano piattaforme CMS (cfr: http://trends.builtwith.com/cms).

Anche per questo è disponibile sul Web una scelta di temi sia commerciali che open source veramente vasta. L’utilizzo di temi già preimpostati con la più svariata tipologia di layout grafico e strutturale, semplifica in modo sostanzioso il lavoro delle Web Agency. Quasi sempre però, una volta scelto il tema, è necessario intervenire sia sul CSS (il foglio stile) che sui template (i modelli strutturali) per adattarli alle proprie esigenze del progetto del sito web.

Per questa esigenza WordPress ci viene incontro mettendoci a disposizione i Child Themes (temi figlio) che ereditano dal Parent Theme (tema genitore) tutte le caratteristiche del modello scelto, permettendo però di sovrascriverle senza doverle modificare. Questo gioca un ruolo determinante nella riduzione dei tempi di sviluppo, e non è poco, visto che ormai per rimanere con i prezzi nel mercato, è necessario abbassare drasticamente i costi di sviluppo.

Quale è il vantaggio? Sta nel fatto che in informatica, la manutenzione del codice gioca un ruolo determinante nella sicurezza e nella sopravvivenza stessa dell’applicazione e se il tema scelto è stato prodotto da sviluppatori seri, verranno costantemente rilasciate nel tempo versioni aggiornate. Ora se noi abbiamo modificato direttamente il codice del nostro tema, non sarà possibile applicare gli aggiornamenti senza sovrascrivere e dunque perdere, le nostre modifiche. Se abbiamo invece derivato un tema figlio, sarà possibile aggiornare senza preoccupazioni il tema padre e mantenere quindi sicuro ed affidabile tutto il nostro lavoro.

Come creare un tema figlio di WordPress:

Il primo passo è di creare una directory nella cartella dei temi con il nome del nostro tema figlio, per esempio (utilizziamo come tema genitore “twentythirteen” che arriva già incluso nel pacchetto di WordPress):

wp-content
|
---themes
     |
     --- twentythirteen
     |
     --- twentythirteen-child

Creiamo dunque la cartella “twentythirteen-child” (N.B.: deve esistere la cartella del tema padre: “twentythirteen” con tutto il suo contenuto originale.)

Il secondo e fondamentale passo è quello di inserire nella cartella appena creata “twentythirteen-child” un file style.css con la seguente struttura di righe iniziali:


/*
Theme Name: Twenty Thirteen Child
Theme URI: http://example.com/
Description: Tema Child per il tema Twenty Thirteen
Author: Qui il vostro nome
Author URI: http://example.com/about/
Template: twentythirteen
Version: 0.1.0
*/

Questo è il solo file obbligatorio per far funzionare un tema figlio e le righe obbligatorie che determinano il funzionamento di un tema figlio sono: Theme Name e Template.

Adesso il nostro tema figlio è già funzionante ma non ha alcun foglio stile, se vogliamo ereditare quello del padre (consigliabile se non lo si vuole riscrivere interamente…) abbiamo due strade:

  1. Si importa direttamente il foglio stile del padre con @import all’interno del CSS del figlio (sconsigliato)
  2. Si aggiunge del codice nel file functions.php del tema figlio (consigliato!)

Ora è necessario spiegare che mentre il file “style.css” del nostro tema figlio sovrascrive quello del padre, il codice scritto nel file “functions.php” creato nella cartella del tema figlio viene aggiunto a quello del tema padre.

La soluzione 1 è più semplice perché non ci obbliga a creare un nuovo file “functions.php” all’interno del nostro tema figlio, ma è sconsigliato per motivi di prestazioni. Come spiegato in questo articolo, il parsing dei fogli stile eseguito dai browser sarebbe estremamente più lento.

La soluzione 2 richiede che vengano inserite le seguenti righe di codice nel file “functions.php” che deve essere creato ex-novo nella cartella del nostro tema figlio:


add_action( 'wp_enqueue_scripts', 'enqueue_parent_theme_style', 0 );
function enqueue_parent_theme_style() {
wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
}

In pratica facciamo caricare separatamente il foglio stile del padre direttamente da WordPress nell’head delle pagine e il CSS del figlio verrà caricato sempre per ultimo.

Infine una nota sull’utilizzo nel tema figlio dei riferimenti al percorso dei file:

Mentre normalmente nei temi viene utilizzata la funzione: get_template_directory_uri() per ottenere il percorso relativo dei file presenti nel tema, nel caso dei temi figli è necessario utilizzare: get_stylesheet_directory() che restituisce il percorso del foglio stile del tema figlio e dunque anche dei file presenti in questa cartella.

Sul sito del Codex di WordPress (da dove ho reperito gran parte di queste informazioni) c’è anche la spiegazione di come impostare l’internazionalizzazione (i18n) per le traduzioni dei file eventualmente presenti nei temi figli: https://codex.wordpress.org/it:Temi_Child#Internazionalizzazione

Riferimenti:

Articoli, categorie, pagine: chiariamo la loro differenza in WordPress

Chi si affaccia per le prime volte all’utilizzo di WordPress, potrebbe trovarsi in difficoltà nel comprendere la differenza tra articoli (o post), categorie e pagine.
Chiariamo subito un punto: WordPress nasce come CMS per creare blog, quindi ecco necessaria e ovvia la presenza di articoli e categorie. Gli articoli non sono altro che i post di un blog che sono elencati, generalmente, in ordine cronologico discendente.
Ma se vogliamo realizzare un sito internet? Bene, abbiamo le pagine, che possiamo (per generalizzare) individuare nella classica pagina chi siamo, dove siamo, etc.

Schermata-1

Gli articoli
Gli articoli sono i post di un blog, oppure le notizie di un giornale on line, ad esempio. Questi sono raccolti in categorie (si possono assegnare una o più categorie per un articolo). Se quindi abbiamo bisogno di contenuti che vanno “raccolti in contenitori” (categorie), dobbiamo utilizzare gli articoli. Ecco perchè sono molto utilizzati per i blog o i giornali on line e, anche se in modo limitato, per un sito, diciamo, classico; anche se questi, ormai, in genere hanno le classiche “News”, quindi degli articoli ai quali sarà assegnata la categoria news, appunto.

Le pagine
Le pagine, invece, hanno una funzione diversa, più da contenuto “statico”, ovvero dove quell’informazione rimane invariata a lungo nel tempo. Pensiamo alla pagina “Chi siamo”, credo non ci sia altro da aggiungere. Possiamo dire che sono di più largo utilizzo in un sito classico e non si possono raccogliere in categorie, anche se possono essere annidate tra loro a più livelli

Quindi, per concludere, possiamo dire che se abbiamo bisogno di contenuti raggruppati tra loro e periodicamente aggiornati nel tempo andremo a scrivere un articolo al quale assegneremo almeno una categoria, se invece dobbiamo inserire un contenuto che rimarrà invariato nel tempo, andremo a scrivere una pagina.

Mentre le pagine e gli articoli hanno una voce nel menù principale del back-office di WordPress (cliccando su di essa saremo portati alla lista), la voce delle categorie si trova nel sotto menù della voce Articoli.