Render_data è uno shortcode esclusivo del wordpress Gpci framework e serve a mostrare informazioni relative a un post, a un utente, a una globale, al sito o a una pagina impostazioni. Le informazioni sono direttamente derivanti dalla conversione dinamica e questo shortcode è da considerarsi una diretta trasposizione. L'obbiettivo di questo shortcode è ottenere informazioni grezze da inserire direttamente in una stringa html o manipolare tramite i controlli; per avere stringhe html già pronte utilizzare lo shortcode rwmb_meta.
Attributi dello shortcode
Lo shortcode render_data ha essenzialmente 2 attributi importanti che funzionano in modo combinato esattamente come la conversione dinamica. Ricordarsi anche che gli attributi di uno shortcode sono sempre stringhe ma verranno automaticamente convertite al tipo corretto. La lista degli attributi è:
type
Tipo di campo da ottenere, i valori normalmente usati saranno:
- wp - predefinito - ottiene il valore di un campo wordpress
- mb - ottiene il valore di un campo personalizzato
- global - ottiene il valore di una globale controllata
- functionwhitelisted - ottiene il valore di una funzione in whitelist
- GET - ottiene il valore di una richiesta di tipo GET - notare che tramite questo shortcode il valore default sarà sempre una stringa vuota
Per la lista di tutti i possibili valori leggere le opzioni disponibili della conversione dinamica. Notare che tramite shortcode funzioneranno soltanto le seguenti opzioni:
- original
- string
- arraystrings
- integer
- arrayintegers
- boolean
- wp
- mb
- mb_value
- global
- GET
- functionwhitelisted
Le altre non sono ammesse e genereranno un messaggio di errore senza eseguire nulla.
data
Dato da ottenere, è sempre relativo al tipo. sono gli stessi descritti nella conversione dinamica con le stesse limitazioni. Quindi per i campi wp ad esempio saranno:
- id - id del post
- title - titolo del post
- permalink - url del post
- bloginfo,description - descrizione del sito
- userdata,id,user_email - email dell'utente corrente
Altri attributi
Esempi
Le combinazioni di questo shortcode sono molte, questi esempi servono a dare un contesto generale a come utilizzare lo shortcode:
Otteniamo i campi wordpress dal post corrente (non ho specificato l'attributo type in quanto il valore default è wp):
[render_data data="id"]
Id: 3453
[render_data data="title"]
Titolo: Render_data
[render_data data="permalink"]
Permalink: https://www.gigitopcinformatica.it/docs/gpci-framework/shortcodes/render_data/
[render_data data="post_type"]
Post type: docs
[render_data data="post_type_object,id,name"]
Nome post type: docs
[render_data data="excerpt"]
Riassunto: Shortcode per ottenere informazioni di qualsiasi genere.
Otteniamo il titolo del post con id 5188:
[render_data data="title,5188"]
Titolo: Global (deprecato)
Ora otteniamo un campo personalizzato metabox:
[render_data type="mb-" data="single_additions_css"]
Contenuto campo personalizzato: #tabella-attributi th, #tabella-attributi tr, #tabella-attributi td{ text-align:left; }
Esempio per ottenere un campo wordpress relativo all'utente corrente:
[render_data data="user_email"]
Aggiungere il parametro id per un certo utente (esempio utente con id 2):
[render_data data="user_email,2"]
Esempio per ottenere un campo personalizzato metabox semplice relativo all'utente corrente con manipolazione del risultato:
[render_data type="mb" data="fine_licenza,id,object_type:user" functions="DataLicenza"]
Per questo esempio sarebbe necessario anche mettere in whitelist la funzione DataLicenza e abilitare il componente aggiuntivo MB User Profile
Ora manipoliamo l'output dello shortcode con una funzione. Utilizziamo lo shortcode per mostrare il contenuto di una textarea:
[render_data type="mb" data="esempio-textarea"]
Risultato: prima riga seconda riga terza riga
Le righe nel frontend sono sulla stessa linea mentre nella textarea sono su più righe, quindi applichiamo la funzione wpautop alla fine:
[render_data type="mb" data="esempio-textarea" functions="wpautop"]
Risultato:
prima riga
seconda riga
terza riga
Ora oltre ad applicare il wpautop aggiungiamo anche una funzione personalizzata (definita nel file functions.php) che sostituisce tutte le parole riga con colonna:
[render_data type="mb" data="esempio-textarea" functions="wpautop,SostituisceRigaConColonna"]
Risultato:
prima colonna
seconda colonna
terza colonna
Esempio per ottenere il nome dell'autore di un post:
//creiamo la funzione e la mettiamo in whitelist per questa pagina
function EsempioNome( $author_id ){
return get_the_author_meta( 'last_name', $author_id );
}
$GLOBALS['gpci']['whitelist']['functions'][] = 'EsempioNome';
[render_data data="post_field,id,post_author" functions="EsempioNome"]
Risultato: Gaudino
Questo funziona perchè post_field,id,post_author ritorna l'id di un utente che viene quindi utilizzato dalla funzione get_the_author_meta.
Esempio per ottenere il valore di un campo personalizzato all'interno di una pagina impostazioni:
- pagina impostazioni con id: dati-strutturati
- gruppo di campi personalizzati assegnati alla pagina impostazioni (id del gruppo indifferente)
- campo personalizzato con id: localbusiness
[render_data type="mb" data="localbusiness,dati-strutturati,object_type:setting"]
