Aspettando WP 2.5 – parte 1


Questo è il primo articolo di una serie che introdurrà le novità della 2.5 sia dal punto di vista del normale utente che per gli sviluppatori di temi e plugin. no vuole essere una panoramica esaustiva perchè le modifiche sono moltissime grandi, piccole e minuscole e coprirle tutte sarà credo impossibile, inoltre molte cose più tecniche sono raccolte nella serie Weekly Digest che appare ogni settimana. Oggi ci concentreremo sulla migrazione di temi e plugin quindi un argomento di interesse per tutti gli sviluppatori. Ecco la traduzione di una sezione di una pagina del codex inglese:

WordPress 2.5 introduce una nuova interfaccia amministrativa che le altre modifiche a WP non dovrebbero avere un particolare impatto sui temi, nessun tag deprecato, nemmeno quelli più datati è stato eliminato, una cosa interesasnte per chi sviluppa temi è il supporto Gravatars nativo in WP che permette di avere temi che supportano gravatars senza ricorrere a plugin esterni e che sarà oggetto di uno specifico articolo.

La nuova interfaccia del pannello di amministrazione invece impatta notevolmente su tutti i plugin che hanno pannelli di opzione o che inseriscono elementi nei pannelli di amministrazione di WP.

Modifiche al menu di amministrazione

Il cambiamento più sostanziale della futura versione di WordPress version 2.5 è la completa revisione delle schermate di amministrazione e dei menu. I menus sono stati riorganizzati comunque molti plugin dovrebbero funzionare correttamente se utilizzano il metodo standard di aggiunta di menu amministrativi (in inglese) ma alcuni richiederranno degli aggiustamenti.

Schermate di amministrazione

Qualsiasi plugin che abbia aggiunto una sezione alla schermata di scrittura/modifica degli articoli o delle pagine, cos’ coeme in altre schermate di amministrazione, troveranno probabilmente che le modifiche di formattazione e si markup in WP 2.5 fanno si che tali aggiunte non si armonizzino e non appaiano come appartenenti alle normali sezioni preesistenti in WordPress. Inoltre alcuni hook che sino alla versione 2.3 i plugin utilizzavano per aggiungere informazioni nelle varie schermate sono stati rimossi in favore di una nuova API ce utilizza la funzione add_meta_box per definire una sezione da aggiungere alle schermate di modifica di articoli, pagine e link. (Tale funzione con del codice di commento si trova in wp-admin/includes/template.php).

Quindi, gli autori di plugin dovranno rilasciare una nuova versione dei loro plugin specifica per WordPress 2.5 o (preferibilmente) inserire della logica nei propri plugin che determina la versione ed utilizza la formattazione corretta. Un buon modo per fare ciò è quella di controllare se è definita la nuova funzione add_meta_box. Ad esempio:

if (function_exists('add_meta_box')) {
 // codice per la 2.5, in cui richiamare la add_meta_box per definire la schermata
} else {
 // codice per la 2.3, che richiama add_action( 'dbx_post_advanced' ) o funzioni similari
}

Nota: assicurarsi di eseguire il test function_exists ben avanti durante l’inizializzazione di WordPress! Questa funzione non viene caricata nel momento in cui viene inizializzato il plugin. Quindi si suggerisce di farlo all’interno di una azione ‘admin_menu’ e della nuova azione ‘admin_init’.

Activation Global Scope

Un altro cambiamento che può influenzare alcuni plugin è che in WordPress 2.5, gli hook di attivazione dei plugin vengono eseguiti in una funzione con scope non globale (precedentemente erano eseguite con scope globale). Ciò significa che se il vostro plugin ha un hok di attivazione e le funzioni che richiama si basano su variabili globali definite all’interno del file del vostro plugin, potreste scoprire che tali funzioni non lavorano correttamente. Tutto ciò che serve fare per risolvere il problema è, a livello di scope globale del vostro plugin, aggiungere una dichiarazione “global” per queste variabili. Ad esempio:

global $my_plugin_variable;
$my_plugin_variable = 3;

function my_plugin_activation_function() {
   global $my_plugin_variable;

   // rest of activation function
}

TinyMCE

Con WordPress 2.5 viene incluso TinyMCE 3.x che è una versione completamente riscritta di questo editor. Vi sono moltissime modifiche nelle API e tutti i plugin WordPress che aggiungono pulsanti all’editor devono venir aggiornati. Dei buoni punti di partenza sono:

http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/devkit http://wiki.moxiecode.com/index.php/TinyMCE:API

Avviamente aggiungere un pulsante che inserisce del codice nella posizione del cursore è abbastanza semplice. il plugin “pagebreak” è un ottimo esempio da copiare..

Per il caricamento dei plugin vi è un nuovo filtro $mce_external_plugins che prende un array ‘name’ => ‘url’ e lo inserisce nella versione zip di TinyMCE. E’ opportuno utilizzare url assolute (con o senza il nome dell’host) in quanto utilizando URL relative occorrone alcune impostazioni all’array di inizializzazione per mantenere i valori di default (che possono venir cambiati da un plugin WordPress), risultando quindi possibile inrterrompere il caricamento di plugin esterni che utilizzano url relative. TinyMCE continua a non caricare un plugin da un altro dominio diverso da quello di esecuzione.

Il compressore gzip è anch’esso cambiato. Ora raccogli tutti i pezzi di TinyMCE e restituisce un file compresso in un solo passaggio. L’azione “mce_options” è ancora supportata ma deprecata. L’azione “tinymce_before_init” è rimpiazzata da un filtro “tiny_mce_before_init” cjhe si applica all’array con tutte le impostazioni di TinyMCE. Inoltre il file zip viene tenuto in cache su disco per risparmiare memoria/risorse di sistema. Questa cache viene invalidata da qualsiasi modifica all’array di inizializzazione o dal cambiamento dell’argomento ver=[number] quando si richiama tiny_mce_config. Questa versione viene filtrata da “tiny_mce_version” definita in /wp-includes/script-loader.php, così che un plugin la possa cambiare.

VI sono dei cambiamenti anche nel caricamento dei file di linguaggio. Il codice linguaggio è ora solo l’ISO 639-1, che è formato solo dalle prime due lettere ricavate dal valore locale di WordPress, tipo de, fr, es, it, etc. TinyMCE caricherà langs/[lang].js quando un plugin viene caricato e se un plugin ha un popup caricherà langs/[lang]_dlg.js quando si apre il popup.

Il caricamento delle stringhe di linguaggio predefinite è anch’esso differente. Ora sono tutte definite in tinymce/langs/wp-langs.php, così da venir inserite nel file .pot principale e tradotte in tute le lingue disponibili in WordPress [N.d.t. – Cosa che ha reso felici tutti noi dei team di traduzione!!] . Un plugin può utilizzare uqalsiasi stringa presente in tale file, si veda l’oggetto tinyMCE.i18n js quando viene caricato TinyMCE per vedere come vengono referenziate.

N.d.t. Con questo articolo vediamo che molte sono le cose che influenza il funzionamento dei plugin nella nuova versione di WP, a tal fine è già stata attivata una pagina del codex inglese dove sono elencati plugin (con la relativa versione) che risultano sicuramente compatibili o sicuramente non compatibili con la nuova versione di WP.

Si chiude qua il primo articolo di Aspettando WP 2.5, nel prossimo articolo vedremo la nuova bacheca e la struttura logica del pannello di amministrazione.

Hai qualche Domanda o vuoi Commentare?

4 commenti su “Aspettando WP 2.5 – parte 1

[…] WordPress Italy ci sono due articoli che descrivono la nuova versione, e presto dovrebbero pubblicarne altri. Su Bloggr.it […]

[…] anche perchè il team di WordPress Italy ha già svolto un egregio lavoro di recensione: linko solo il primo dei 5 articoli realizzati, gli altri li trovate sul […]

Lascia un commento

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

Archivi

Categorie