Cose da tenere a mente durante la creazione di un plugin per WordPress da zero
Pubblicato: 2022-01-02Un 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
