Wordpress maintenant en JavaScript

Avec la WP API, Wordpress n'est plus écrite en PHP, mais passe au JavaScript, ce qui permet d'utiliser les frameworks modernes comme interface de l'application...

Wordpress en JavaScript

Parce que Wordpress veut devenir un framework d'application (c'est le team qui l'affirme), elle doit abandonner PHP au profit d'un langage qui permet de mieux interfacer l'utilisateur avec le contenu disponible.

Cela ne remet pas en cause le code PHP existant, à court terme tout au moins, mais offre un autre moyen de faire la même chose d'une façon différente. Au lieu de télécharger l'application PHP (ce que l'on pourra toujours encore faire dans les années à venir, sans doute), on installe le framework JavaScript qui présente le blog ou le site selon les principes similaires mais avec des méthodes différentes.
Avec le code JavaScript, tous les échanges avec la base de donnée, en lecture ou écriture, se font par des requêtes HTTP GET et POST!

S'inspirant du modèle Backbone.js, base de nombreux frameworks, la nouvelle plateforme permet aussi de créer des plugins et thèmes utilisant un framework JavaScript.

WP API se décompose en plusieurs sections: post API, users API, revisions API etc... Toutes utilisent l'interface WP Query qui effectue les requêtes à la base de données sous forme de descriptions JSON. Ces requêtes sont réalisées automatiquement par l'interface HTML et JavaScript en réponse aux actions de l'utilisateur.

La fin du "loop"

Toute page du logiciel classique a la forme d'un boucle en PHP, comme par exemple:

<?php while ( have_posts() ) : the_post() ?>
<h1 class="postitle"><?php the_title(); ?></h1>
<div class="content"><?php the_content(); ?></div>
<div class="postinfo">
Author: <?php the_author(); ?> on <?php the_date(); ?> </div> ?>

Cela permet d'afficher un article, ou une liste d'articles ou de titres et sommaires.

Cela est remplacé avec la WP API par une requête GET sur une URL comme celle-ci:

/posts?filter[s]="Titre du billet" 

ou:

/posts/<id> 

Le système répond en fournissant un fichier JSON contenant tous les éléments qui constituent une page du site, qui est alors converti en code HTML par l'API...

Quand on édite un billet, les données de formulaire sont aussi converties en fichier JSON comme ci-dessous, qui sera transformé en requêtes SQL pour les stocker dans la base...

{
 "title": "Titre du billet",
 "content_raw": "Le texte",
 "date":"2015-03-0212:00:00+01:00"
}

Adieu PHP...

Le team Wordpress a un plan pour intégrer la WP API au coeur du projet de façon progressive, ce qui permettra avec le temps de remplacer le code actuel PHP par le nouveau modèle JavaScript. Cela commencera par le panel d'administration qui utilise déjà JavaScript, et à terme, n'utilisera plus que ce langage. L'affichage du contenu deviendra une option pour permettre aux auteurs de thèmes et de plugins de les adapter avant un jour de devenir le procédé par défaut: Wordpress sera alors devenu un framework comme Drupal, mais sans la complexité et en tirant profit de toutes les nouvelles technologies qui rendent les interfaces dynamiques et intuitives.

Mise à jour 23 novembre 2015

Le 23 novembre, l'équipe à annoncé Calypso, la nouvelle interface écrite en JavaScript. Calypso remplace la partie client du CMS et supporte thèmes et plugins. Node.js est requis sur le serveur. Le remplacement est tout à fait facultatif.

Ressources