Il futuro di WordPress visto da un Dilettante

Uso WordPress da 5 anni, complessivamente ci gestisco una decina di siti. Ho acquisito un minimo di conoscenze di programmazione, per cui sono in grado di apportare modifiche e nuove funzionalità, ma non mi posso certo definire un esperto (a volte fisso il codice senza capire nulla). Ciononostante, ho il sentore dell’evoluzione intrapresa da questa piattaforma.

La prossima cosa grossa (The Next Big Thing) è l’integrazione della cosiddetta “REST API“. Lasciando perdere gli acronimi, vuol dire che il motore di WordPress potrà essere sfruttato da qualsiasi applicazione web. Qui di seguito uno schemino molto professionale che rappresenta la situazione attuale.

WP_REST_APIDatabase

La tartaruga rappresenta il vostro database, lì c’è tutto il materiale del vostro sito, tutto bello ordinato. La tartaruga è semisommersa, è un oggetto un po’ misterioso, l’utente medio non sa nemmeno che esiste.

WordPress

Sopra la tartaruga c’è la piattaforma WP, rappresentata da un elefante. Ebbene si, WP è il nostro CMS preferito, ma a volte è un po’ pachidermico. Spesso è “troppo” per quello che vi serve veramente, poi magari cercate proprio quella funzionalità… e non c’è! Aldilà di queste considerazioni, l’elefantino gestisce il vostro database, vi aiuta a scrivere gli articoli e li prepara per mostrarli al mondo.

REST API

Potremmo fermarci qui, abbiamo tutto ciò che serve per gestire un sito, ma ecco entare in gioco la REST API, rappresentata dalla rana in cima all’elefante. Allo stato attuale la REST API è una estensione di WP (un plugin), ma a breve dovrebbe essere integrata nel cuore (core) del programma. La REST API è linguacciuta, solletica l’elefante dietro l’orecchio e per suo tramite attinge alle informazioni del database, mostrandole all’esterno in un formato d’interscambio.

Visualizzatore

L’ultimo attore di questo caravanserraglio è una app esterna, rappresentata dalla mosca che ronza attorno alla rana. Vi mostro come è fatta questa mosca:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
  <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
  <title>digitalkOmiX Micro Viewer</title>
  <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
</head><body style="color: rgb(0, 0, 0); background-color: rgb(51, 102, 255);" alink="#3366ff" link="#3366ff" vlink="#3366ff">
<div id="container" style="margin: auto; width: 500px; font-family: Arial;">
<h1 style="text-align: center; color: white;">digitalkOmiX</h1>
<h5 style="text-align: center; color: white;">by Andy War</h5>
<div id="button-wrapper" style="background-color: white; border-radius: 10px; padding: 10px;"> <a href="/mv" id="random-post"> Nuovo articolo </a>
</div>
<div>
<h2 id="digkom-mv-title">Istruzioni:</h2>
<p id="digkom-mv-content">Clicca sul pulsante qui sopra per scaricare un articolo a caso da digitalkOmiX. Funziona con la WP REST API.</p>
</div>
</div>
<script>
jQuery( function( $ ) {
  $( '#random-post' ).on( 'click', function ( e ) {
    e.preventDefault();
    $.ajax( {
      url: 'https://andywar.net/digitalkomix/wp-json/wp/v2/posts?filter[orderby]=rand&filter[posts_per_page]=1',
      success: function ( data ) {
        var post = data.shift(); // The data is an array of posts. Grab the first one.
        $( '#digkom-mv-title' ).text( post.title.rendered );
        $( '#digkom-mv-content' ).html( post.content.rendered );
      },
      cache: false
    } );
  } );
} );
</script>
</body></html>

Tutto qui! E’ una semplice paginetta web, esterna a WP, potrebbe stare ovunque nella rete. Nello specifico, se volete vederla in azione, cliccate qui.

microviewer

E’ un sistema di navigazione ridotto all’osso, c’è un unico pulsante che carica un articolo a caso dal mio sito digitalkOmiX.com. Per chi ci capisce qualcosa, c’è un piccolo javascript basato su jQuery (notate che nella <head> del documento viene caricata la libreria) che interroga la REST API, richiedendo un unico articolo (posts_per_page=1) preso a caso (orderby=rand). Lo script l’ho preso e rimaneggiato da qui.

Il materiale recuperato (un oggetto JSON) va a sostituire alcune parti della pagina originale, il tutto senza che la pagina venga ricaricata, perché la sostituzione avviene direttamente nel vostro computer, non nel mio server.

Ovviamente non tutto fila liscio, a volte la formattazione lascia a desiderare, le immagini spariscono o si accavallano, anche perché di base il materiale trattato NON è pensato per un visualizzatore così striminzito (in realtà poi è bastato aggiungere un paio di link agli stylesheet del plugin Jetpack per risolvere i disallineamenti che vedete nell’immagine qui sotto).

bug

Concludendo: un visualizzatore semplicissimo che può attingere ad un database potenzialmente infinito e infinitamente complesso. Mettete la cosa nelle mani di un buon sviluppatore, scrivetelo nel linguaggio più appropiato al device in uso e vedrete dove si può arrivare. Esempi attualmente in uso, così come suggeritomi da Danilo Ercoli: i “Reader” WordPress delle app mobile, sia iOS che Android, nonché le pagine di amministrazione di WordPress.com.

Il futuro di WordPress

A mio parere WP, svincolato dall’assillo dell’apparenza, del front end, del mobile first, potrà solo che migliorare in termini di funzionalità e sicurezza (grande tallone di Achille), trasformandosi da CMS in maturazione a solida piattaforma per applicazioni web.

la REST API all’interno di WP

Un’ultima cosa: la REST API può anche funzionare all’interno di WP. Guardate per esempio la pagina iniziale di digitalkOmiX. In questo caso ho utilizzato un nuovo page template nel tema corrente, in cui è inserito lo script qui sotto. La richiesta è di un solo articolo (posts_per_page=1) dal più recente al più antico (ho usato il filtro ‘paged’, con un contatore che incrementa di uno ogni volta che si pigia il pulsante). Anche qui la transizione è fluida, senza che la pagina debba essere caricata. E anche qui ogni tanto ci sono delle magagne, ma lasciatemi un po’ di tempo, sono solo all’inizio di questa storia.

<script>
jQuery( function( $ ) {
    var counter = 0;
  $( '#random-post' ).on( 'click', function ( e ) {
      counter++;
    e.preventDefault();
    $.ajax( {
      url: '/digitalkomix/wp-json/wp/v2/posts?filter[posts_per_page]=1&filter[paged]='+counter,
      success: function ( data ) {
        var post = data.shift(); // The data is an array of posts. Grab the first one.
        $( '#digkom-mv-title' ).html( post.title.rendered );
        $( '#digkom-mv-content' ).html( post.content.rendered );
      },
      cache: false
    } );
  } );
} );
</script>
Articoli di riferimento sulla REST API

Autore: Andy War

Born in Naples, 1965, lived in Princeton and France, then back to Italy. Comics. Grendizer, Star Wars, Lucky Luke. Architecture, Punk Rock. Sciattoproduzie, structures. Digital animations, running, hospitals. I live and work in Rome, married with two children.

Lascia un commento

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

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.