Un aspetto molto importante che riguarda WordPress è sicuramente la validazione dei dati in ingresso e in uscita, quindi vi parleremo della funzione wp_kses. Per validazione dati in informatica si intende tutto quel procedimento di controllo degli stessi al fine di evitare che possano produrre problemi al CMS.
Per ingresso e uscita si intende le due direzioni di ingresso al CMS verso il Database e Viceversa. Tutto deve essere opportunamente validato prima di essere reso disponibile agli utenti.
Dietro la parola inglese Sanitization o sanitificazione in italiano ci sta proprio questo. Ossia la ripulitura dei dati da utilizzare nel CMS.
Wordpress stesso suggerisce di procedere a questa ripulitura il più tardi possibile in modo che nulla sfugga a questo procedimento.
Iniziamo con la tipizzazione

intval ($int) oppure (int) $int

per fare il cast di $int. Ossia renderlo intero.

absint($int)

per ottenere un intero non negativo
Molte volte in documenti XML capita di trovare anche caratteri

apos, amp, gt, lt, quot

in output specialmente nei feed non ben formattati etc. etc. quindi è sempre bene ripulire , specialmente in entrata il testo con la seguente funzione

et2ncr($testo_da_ripulire)

Un’altra funzione molto importante è

wp_kses per ripulire i caratteri html

Traduco più o meno letteralmente dal sito di wordpress che

Questa funzione fa in modo che solo i nomi degli elementi HTML permessi, nomi degli attributi e valori di attributi più entità HTML passeranno o meglio non saranno filtrati. È necessario rimuovere eventuali barre da magic quotes PHP prima di chiamare questa funzione.

Insomma detto in maniera esplicita si tratta di una funzione che elimina tutt i caratteri HTML e PHP caduti in disuso o errati , al fine di rendere “pulito” il contenuto della stringa passata al CMS WordPress.

La funzione è la seguente

wp_kses( (string) $fragment, (array) $allowed_html, (array) $protocols = null )

dove

  • $fragment string rappresenta la stringa da filtrare , ossia dati in entrata al WP da output oppure in ingresso da DB.
  • $allowed_html è ovviamente un array di tag html permessi. Un possibile esempio potrebbe essere array(
    ‘a’ => array(
    ‘href’ => array(),
    ‘title’ => array()
    ),
    ‘br’ => array(),
    ’em’ => array(),
    ‘strong’ => array(),
    );
  • $protocol è opzionale e rappresenta il protocollo accettato.

Quindi in definitiva si tratta di una funzione che ancora una volta è in grado di riconoscere e filtrare input potenzialmente dannoso.

La funzione presenta poi due varianti che sono

<?php wp_kses_post( $data ); ?>

dove $data è ovviamente il contenuto del post. Il funzionamento è lo stesso di quello già spiegato per la funzione genitore. Ossia filtri tutti i tag che non sono permessi..

Sempre dalla funzione genitore discende anche

la funzione wp_kses_allowed_html

Questa funzione ha un utilizzo specifico ossia quello di ritornare un elenco di tag html consentiti per un determinato contenuto. Il valore di ritorno è un array multidimensionale con il nome del tag come chiave e una serie di attributi come valore.

 

Altre funzioni di questo tipo utilizzate per ripulire sono

 

esc_html()

esc_html__()

esc_html_e

esc_attr

esc_url