Sviluppare un plugin WordPress – creare la struttura iniziale

Wordpress è un'ottima soluzione per creare siti in modo veloce e semplice. I plugins permettono di aumentare le funzionalità base della piattaforma senza nessuna conoscenza di programmazione. Qualora però fosse necessario interagire in modo customizzato con Wordpress allora avremo bisogno di sviluppare un plugin. In questo articolo andremo a capire come impostare il progetto di un plugin senza troppo sforzo.

Share

Condividi su facebook
Condividi su linkedin
Condividi su twitter
Condividi su email
Reading time: 5 minutes

WordPress è la piattaforma più utilizzata in tutto il mondo per creare siti web. E’ infatti possibile creare un sito come questo che state visitando che comprende pagine di descrizione di un’attività e articoli di un blog. Nato principalmente per permettere a qualsiasi persona di creare e gestire un proprio blog su cui pubblicare i propri interessi, negli anni  la piattaforma si è evoluta. Ad oggi oltre ad essere utilizzata per i blog, viene anche usata per creare siti e-commerce o di e-learning. Ma come è possibile aggiungere queste funzionalità ad un’installazione base di WordPress? Semplice: cercate il plugin che fa al caso vostro!!!

I plugin sono pacchetti software che si integrano con la piattaforma WordPress per inserire nuove funzionalità. Ad esempio, Woocommerce permette di creare un negozio virtuale, gestire l’inventario dei prodotti, impostare i metodi di pagamento e di spedizione e molto altro. Quindi con pochi clicks e un pò di configurazione un sito e-commerce è pronto per essere lanciato.

Ad oggi esistono una varietà di plugins per ogni esigenza. Esistono però delle esigenze particolari che non sono coperte dai plugins attualmente disponibili. Ad esempio, la creazione di pagine personalizzate per la fornitura di servizi. In questi casi è necessario implementare un plugin dedicato. 

L’implementazione di un plugin per WordPress, ahimè, non è per tutti. Bisogna avere delle competenze di programmazione, conoscere il linguaggio PHP, un pò di html e css, e studiare le funzionalità fornite da WordPress. Purtroppo la documentazione fornita da WordPress non fornisce esempi concreti, il che rende lo sviluppo di un plugin molto difficile. In questo articolo andremo a vedere come creare la struttura del codice per un nuovo plugin e la analizzeremo.

Preparazione di un ambiente di sviluppo

Prima di iniziare a creare il nostro plugin abbiamo la necessità di creare un ambiente in cui lo potremo testare. Non vogliamo infatti installare il nostro plugin su un sito già online rischiando di compromettere alcune sue funzionalità.

Per far questo il consiglio è di crearsi un docker che implementi WordPress. Possiamo utilizzare l’esempio già descritto nell’articolo Docker compose – come orchestrare diversi container. In questo modo avremo sul nostro pc un’installazione “pulita” di WordPress su cui potremo lavorarci e sperimentare. Per semplicità vi riportiamo il docker-compose file qui sotto.

version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {}
 

Il nostro sito di test sarà disponibile all’indirizzo http://localhost:8000. Bisognerà quindi collegarsi a questo indirizzo e iniziare la configurazione di WordPress. Poichè è un sito di test non abbiamo la necessità di installare tutti i plugin che effettivamente utilizzeremo per il sito finale, ma solo quelli strettamente necessari.

Ad esempio, se il nostro plugin inserirà delle pagine personalizzate all’interno del profilo utente di un sito di e-commerce, avremo necessariamente bisogno di installare Woocommerce. Discorso simile se il nuovo plugin dovrà inserire delle nuove funzionalità in un editor grafico quale Elementor, DiVi o Avada.

Ricordate che più plugin installate più il vostro sito risulterà lento e le interferenze con il vostro plugin potrebbero aumentare. 

Creare la struttura di un plugin WordPress

Come detto in precedenza, la documentazione relativa allo sviluppo di plugin per WordPress non fornisce tutorial, ma solo linee guida. Risulta quindi difficile definire una struttura standard che rispetti le best practices riportate nella documentazione ufficiale.

Esistono, infatti, plugin costituiti da un solo file come Hello Dolly, o altri molto complessi come Woocommerce. La struttura rispecchia sia le funzionalità fornite sia le capacità del programmatore.

Esiste però una soluzione a questa mancanza di standardizzazione delle strutture dei plugins: WordPress Plugin Boilerplate Generator. Mediante questo software è possibile generare una struttura standard dei nuovi plugin che rispecchi le best practices. Essendo online non c’è la necessità di installare nulla sul nostro pc. Ci basterà riempire il form mostrato qui sotto.

Una volta compilato il form e cliccato sul bottone “Build Plugin” verrà scaricato uno zip contente il codice del nostro nuovo plugin. Ovviamente sarà compito del programmatore implementare le nuove funzionalità. La struttura, però, ci permetterà di inserirle in modo agevole e ottimale. Inoltre, tutte le informazioni e le funzionalità di installazione e disinstallazione del plugin sono già disponibili. Possiamo quindi provarlo ad installarlo senza il timore che questo possa compromettere il funzionamento del sito.

Struttura del plugin

Andiamo a vedere la struttura del plugin per comprendere dove dovranno essere inserite le varie funzionalità. Creiamo con il software descritto in precedenza il plugin con le seguente informazioni:

In pochi secondi verrà scaricato uno zip di circa 21 KB. Estraiamo il suo contenuto per poterci lavorare. La cartella risultante avrà la struttura seguente.

La struttura è alquanto articolata ma comprende tutto ciò che serve, e forse anche qualcosina di più. Andiamo ad analizzarla per evidenziare le caratteristiche principali che ci aiuteranno a sviluppare il nostro plugin.

Per prima cosa possiamo notare che un file README e LICENSE sono già presenti. La licenza generata è del tipo “GNU GENERAL PUBLIC LICENSE“. Nel caso fosse necessario cambiarla dovete semplicemente sostituire il contenuto di questo file. Nel file README invece ci sono alcune informazioni riguardo al plugin. Alcune di queste informazioni verranno visualizzate nel pannello relativo ai plugins dell’amministratore del sito. Pertanto cambiatele prima di rilasciare il vostro plugin!!!

Nonostante sembra più intuitivo che il file index.php sia quello che gestisca l’intero plugin, ciò non è vero. Tutti i file index.php che trovate nelle varie cartelle servono per definire i “pacchetti” o “moduli” del vostro software. Se arrivate come me dal mondo python potreste paragonarli al file __init__.py.

Il file che definisce il plugin e che verrà eseguito da WordPress durante l’installazione, la configurazione, l’esecuzione e la disinstallazione è il file flowygo.php. In questo file dovrete andare a definire le dipendenze e le inclusioni che vi serviranno. Ad esempio, potrete inserite una funzione che verifica la presenza di determinati plugin attivi. 

La cartella includes contiene i file relativi alla gestione delle funzionalità base del plugin. Il file che dovremo modificare per attivare le nuove funzionalità è class-flowygo.php. All’interno di questo file aggiungeremo, ad esempio, le actions per registrare nuovi menù nel pannello dell’amministratore, endpoints e includere scripts. 

Le funzionalità che il nostro plugin fornirà saranno invece definite nei file delle cartelle admin e public. La cartella admin includerà tutti i file php, js e css che verranno utilizzati nei menù del pannello di amministrazione. Sarà qui che potremo definire dei forma per impostare i parametri del nostro plugin o intercettare azioni compiute da altri plugin. Diversamente nella cartella public andremo a definire tutto ciò che serve per aggiungere nuove pagine nella parte pubblica del sito.

Infine la cartella languages conterrà i file per le traduzioni delle voci del nostro plugin. In questo modo il plugin potrà essere utilizzato in lingue diverse.

Nei prossimi tutorial dedicati a WordPress vedremo alcuni esempi pratici di come modificare opportunamente i file per aggiungere alcune funzionalità.

Letture consigliate

More To Explore

Python

Chatterbot: creare un chatbot in python

I chatbot sono una tecnologia che permette di automatizzare l’interazione con gli utenti. Sfruttando le ultime tecnologie di intelligenza artificiale le conversazioni risultano sempre più reali. Esempi di evoluzioni dei chatbots sono gli assistenti virtuali come Alexa, Cortana e Siri. Scopriamo come è possibile sviluppare un semplice chatbot in Python mediante la libreria Chatterbot.

Google Cloud

AutoML Vision: classificazione di immagini

Lo sviluppo di modelli di classificazioni di dati non strutturati, quali immagini o testi, non è un task semplice. In molti casi sono richieste competenze di sviluppo molto specifiche. Scopriamo come è possibile, mediante AutoML Vision di Google Cloud, creare un modello di classificazione di immagini senza scrivere una linea di codice ma solo selezionando le immagini per il nostro modello.

Lascia un commento

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

Design with MongoDB

Design with MongoDB!!!

Buy the new book that will help you to use MongoDB correctly for your applications. Available now on Amazon!