Corsi on-line

Aggiungere campi personalizzati a post e pagine in WordPress

Abhishek ha pubblicato tempo fa un interessante articolo dedicato all’aggiunta di custom fields in articoli e pagine gestiti tramite il blog engine Open Source WordPress; in realtà la soluzione proposta potrà essere applicata, con i dovuti adattamenti, ad una qualsiasi altra applicazione blog oriented anche realizzata from scratch, ciò che conta è che la sorgente di riferimento per i dati sia un database basato sull’engine MySQL.

Nel caso specifico di WordPress, si potranno aggiungere campi personalizzati a tutte le pagine e agli articoli attraverso una query  che prevede le seguenti istruzioni, naturalmente essa dovrà essere corretta operando una sostituzione del nome “CampoPersonalizzato” con quello del proprio campo personalizzato e di “valore” con il proprio valore di riferimento:

INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'CampoPersonalizzato'
AS meta_key 'valore AS meta_value FROM wp_posts
WHERE ID NOT IN (SELECT post_id FROM wp_postmeta WHERE meta_key = 'MonCustomField');

E’ possibile applicare la stessa operazione ai soli post, in questo caso si dovrà però utilizzare una query come la seguente:

INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'CampoPersonalizzato'
AS meta_key 'valore AS meta_value
FROM wp_posts WHERE ID NOT IN
(SELECT post_id FROM wp_postmeta WHERE meta_key = 'CampoPersonalizzato')
`` AND post_type = 'post';

Infine, si potranno aggiungere campi personalizzati alle sole pagine utilizzando una query simile alla precedente, sempre basata sull’adozione di sub-query, ma riferita a quest’ultima tipologia di contenuto:

INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'CampoPersonalizzato'
AS meta_key 'valore AS meta_value
FROM wp_posts WHERE ID NOT IN
(SELECT post_id FROM wp_postmeta WHERE meta_key = 'CampoPersonalizzato')
AND `post_type` = 'page';

Chiaramente le operazioni proposte potranno essere completate utilizzando una qualsiasi interfaccia per l’interazione con il DBMS, dalla semplice linea di comando fino a front-end appositi come per esempio PhpMyAdmin.

Post correlati
I più letti del mese
Tematiche