Cose da tenere a mente durante la creazione di un plugin per WordPress da zero

Pubblicato: 2022-01-02

Un plugin WordPress è in realtà un singolo file o gruppo di file che estende o migliora le funzionalità di un sito WordPress.

Ogni nuovo sviluppatore sa "Come codificare?", Ma quando si crea un plug-in in WordPress, lo sviluppatore deve ricordare alcuni requisiti di base per creare un plug-in WordPress oltre alla qualità del codice, alla sicurezza e alla funzionalità.

Questa guida descrive i passaggi importanti da tenere a mente quando si creano plugin WordPress da zero.

Nei plugin di WordPress, una cosa fondamentale da capire sono gli hook di WordPress, ad esempio azioni e filtri. Gli hook consentono ai plugin di funzionare con funzionalità definite in momenti specifici all'interno delle funzioni di WordPress.

Elenco degli hook di azione: https://codex.wordpress.org/Plugin_API/Action_Reference

 define( 'WP_DEBUG', vero);
--- L'opzione WP_DEBUG è stata aggiunta nella versione 2.3.1 di WordPress.
--- Per impostazione predefinita, si presume che sia falso. Tuttavia, di solito è impostato su true nel file wp-config.php.

-> Aggiungi un'intestazione di informazioni specifiche del plug-in al nostro file appena creato nella cartella Plugin.

 /*
Nome plugin: Testimonial Post type
URI del plugin: https://wordpress.org/plugins/testimonial-post-type/
Descrizione: Crea un tipo di post Testimonial, è Tassonomia e tag.
Versione: 1.0
Autore: Elsner Technologies Pvt. Ltd.
URI dell'autore: https://www.elsner.com
Dominio del testo: testimonial-post-type
Percorso dominio: /lingue
*/

Relazionato: Plugin WordPress lanciato di recente da Elsner: Posts Slider Shortcode

-> Tutti i plugin devono avere nomi di funzioni, definizioni e nomi di classe univoci.

Ciò impedisce al tuo plug-in di entrare in conflitto con altri plug-in o temi.

–> Non utilizzare __ (doppio trattino basso), wp_ o _ (singolo trattino basso) come prefisso.

Quelli sono riservati a WordPress stesso. Puoi usarli all'interno delle tue classi, ma non come funzione autonoma

-> Si prega di proteggere il plug-in dall'accesso diretto ai file.

 if ( ! define( 'ABSPATH' ) ) exit; // Esci se accedi direttamente

— Puoi evitare l'accesso diretto ai file inserendo questo codice nella parte superiore di tutti i file php:

-> Aggiungi un nonce alle tue chiamate POST per impedire l'accesso non autorizzato.

nonce (numero usato una volta)

I nonce di WordPress non sono numeri, ma sono un hash composto da numeri e lettere. Né vengono utilizzati una sola volta, ma hanno una "durata" limitata dopo la quale scadono.

Normalmente generiamo un URL come questo che elimina post_id 174
http://example.com/wp-admin/post.php?post=123&action=trash

Questo URL è perfetto, ma non sicuro. Supponiamo che un utente malintenzionato conosca l'id dei post, quindi l'attaccante può eliminare i post con questo URL a tua insaputa.

L'aggiunta di un nonce lo impedirà. Ad esempio, quando si utilizza un nonce, l'URL generato da WordPress per l'utente è simile a questo:
http://example.com/wp-admin/post.php?post=123&action=trash&_wpnonce=b192fc4204

 $nonce = wp_create_nonce( 'my-action_trash' );

— Questo restituisce semplicemente il valore nonce stesso.

— Questo valore lo puoi inserire in un URL come

action='http://example.com/wp-admin/post.php?post=123&action=trash&_wpnonce='.$nonce;

— Verifica di un nonce passato nell'URL

 wp_verify_nonce( $_REQUEST['_wpnonce'], 'my-action_trash' );

Correlati: Come inviare il tuo plug-in alla directory dei plug-in di WordPress?

-> Si prega di disinfettare, uscire e convalidare le chiamate POST

Igienizzare: pulizia input utente
Non si deve mai avere un dato grezzo inserito all'interno del database, nemmeno con una funzione di aggiornamento o con una chiamata prepare().

La sanificazione dei dati POST quando vengono utilizzati per effettuare inviti all'azione o reindirizzamenti di URL ridurrà la possibilità di vulnerabilità XSS.

sanitize_text_field($_POST['post_name']);
— I dati possono essere sanificati utilizzando la funzione di cui sopra.
— Dietro le quinte, la funzione svolge le seguenti operazioni:
Verifica la presenza di UTF-8 non valido
Converte singoli < caratteri in entità
Elimina tutti i tag
Rimuovi interruzioni di riga, tabulazioni e spazi bianchi extra
ottetti di striscia
— sanitize_*() classe di funzioni di supporto
https://developer.wordpress.org/plugins/security/securing-input/

Convalida: controllo dell'input dell'utente
Oltre alla sanificazione, dovresti convalidare tutte le tue chiamate. Se una chiamata $_POST deve essere solo un numero, assicurati che sia un int() prima di passarlo attraverso qualsiasi cosa. Ogni volta che si aggiungono dati al database, dovrebbero essere i dati giusti.

 intval($_POST['post']);
--- if $_POST['post']

ha un valore numerico, restituirà true. Se non lo è, allora falso.

Escape: protezione dell'output
L'escape significa prendere i dati che hai già e metterli al sicuro prima di renderli per l'utente finale.

L'escape/casting sull'output rimuove semplicemente qualsiasi ambiguità e aggiunge chiarezza.

 <h4> <?php echo esc_html( $titolo ); ?> </h4>
--- esc_html()

dovrebbe essere usato nei momenti in cui l'elemento HTML racchiude una sezione di dati di cui stiamo avendo l'output.

 esc_html ( stringa $testo )

Fuga per blocchi HTML.

 esc_html_e ( stringa $testo )

Visualizza il testo tradotto di cui è stato eseguito l'escape per un utilizzo sicuro nell'output HTML.

 esc_html__ ( stringa $testo )

Recupera la traduzione di $text e ne esegue l'escape per un uso sicuro nell'output HTML.

 <img alt="" src="<?php echo esc_url( $picture_url ); ?>
--- esc_url()

dovrebbe essere usato su ogni URL, inclusi quelli negli attributi 'src' e 'href' di un elemento HTML.

 <?php echo esc_js( $valore ); ?>
--- esc_js()

è inteso per Javascript in linea.

 <ul class="<?php echo esc_attr( $stored_class ); ?>">
--- esc_attr()

è utilizzabile su tutto il resto che è stampato in un attributo dell'elemento HTML.

Nota :-
Si prega di controllare il collegamento sottostante per capire dove si trovano le cartelle e come chiamarle al meglio
https://codex.wordpress.org/Determining_Plugin_and_Content_Directories

Se possibile, salva i dati nelle tabelle wp_options.

L'obiettivo conclusivo di tutto ciò è garantire che i dati non validi e non sicuri non vengano mai elaborati o visualizzati. Pulisci, controlla, scappa da tutto. Inoltre, non fidarsi mai degli utenti di avere sempre dati sani di input.

Correlati: Come personalizzare la pagina di accesso di WordPress