✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Interfacce dei plugin di WordPress: lavorare con le risorse

10

Uno dei vantaggi di lavorare con la programmazione orientata agli oggetti è la capacità di definire interfacce in modo che le classi che implementano tali interfacce abbiano un insieme rigoroso di funzioni che dette classi devono implementare.

Questa è la definizione di un’interfaccia di classe, comunque:

Un’interfaccia è un contratto che specifica un insieme di metodi, campi e proprietà che saranno disponibili su qualsiasi oggetto di implementazione

Ma come potrebbe apparire se miriamo a creare una soluzione con spazio dei nomi per includere le interfacce dei plugin di WordPress (o un’interfaccia) per una classe che può essere utilizzata per accodare fogli di stile o file JavaScript?

Interfacce plugin di WordPress: risorse

Ai fini di questo post, supponiamo che stiamo definendo un’interfaccia che verrà utilizzata nell’area di amministrazione di WordPress. Cioè, creeremo un’interfaccia che verrà utilizzata per accodare fogli di stile e file JavaScript.

Dovremo incorporare quanto segue:

  • uno spazio dei nomi che può essere utilizzato durante tutto il progetto,
  • una funzione per inizializzare la classe,
  • una funzione per accodare effettivamente gli asset.

E poiché questo è abbastanza generico da poter essere utilizzato per JavaScript e fogli di stile, ho scelto di chiamarlo semplicemente Asset.

Il risultato finale potrebbe assomigliare a questo :

<?php

namespace AcmeAdminInterfaces;

interface Asset {

    public function init();
    public function enqueue();
}

Successivamente, dobbiamo implementare effettivamente l’interfaccia con una classe. Dovrebbe essere relativamente semplice poiché abbiamo impostato i metodi che devono essere implementati.

Si noti, tuttavia, che fornisco un paio di proprietà impostate nel costruttore della classe. Questi sono specifici di questa classe e rendono un po’ più semplice l’atto di accodare un file.

<?php

namespace AcmeAdmin;
use AcmeAdminInterfaces;

class JavaScript_Assets implements InterfacesAsset {

    private $assets_dir;

    private $js_dir;

    public function __construct() {

        $this->assets_dir = trailingslashit(
            plugin_dir_url( __FILE__ ). 'assets'
        );

        $this->js_dir = trailingslashit( $this->assets_dir. 'js' );
    }

    public function init() {

        add_action(
            'admin_enqueue_scripts',
            array( $this, 'enqueue') );
    }

    public function enqueue() {

        wp_enqueue_script(
            'toggle-admin-notices',
            $this->js_dir. 'admin.js',
            array( 'jquery' ),
            false
        );
    }
}

Alcune cose da notare sul codice sopra:

  • utilizza la  parola chiave use in modo che PHP sappia che lavoreremo con l’ interfaccia Asset ,
  • Ho preceduto il nome con JavaScript, quindi è chiaro con quale tipo di risorsa sto lavorando.

Infine, per istanziare la classe che implementa l’interfaccia, fai semplicemente questo :

<?php

$assets = new AdminJavaScript_Assets();
$assets->init();

Certo, questo particolare esempio è semplice e ho lasciato fuori i soliti commenti sul codice, ma in genere è per motivi di leggibilità. Se vuoi vedere qualcosa di simile in azione, controlla il codice sorgente per

Se vuoi vedere qualcosa di simile in azione, controlla il codice sorgente per questo particolare plugin.

Fonte di registrazione: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More