Personalizzazione dei Custom fields in WordPress
Recentemente ho lavorato su un sito wordpress che richiedeva una personalizzazione della pagina di aggiunta articolo per un custom post type, perciò è stato necessario aggiungere aggiungere del css e js all’head del pannello admin, applicare l’editor predefinito di wp (tinyMCE) ad alcune textarea aggiuntive ed eliminare alcuni pulsanti di formattazione per mantenerla semplice.
Partiamo dall’inclusione dei file necessari, in functions.php bisogna inserire:
$siteurl = get_option('siteurl');
$admin_css_url = $siteurl . '/wp-content/themes/' . basename(dirname(__FILE__)) . '/admin.css';
?>
<link rel="stylesheet" type="text/css" href="<? echo $admin_css_url ?>" />
<?
}
In pratica $siteurl va a prendere l’url del blog, poi nella variabile $admin_css_url viene inserito il percorso al file admin.css contenuto nella cartella del template corrente.
Una volta fatto questo bisogna aggiungere il codice javascript per applicare tinyMCE alla textarea addizionale, sotto al link al css inserire:
jQuery(document).ready(function() {
if ( typeof( tinyMCE ) == "object" && typeof( tinyMCE.execCommand ) == "function" ) {
tinyMCE.execCommand("mceAddControl", false, "ingredienti");
}
});
</script>
Il codice non fa altro che inserire l’editor così come per il blocco content principale anche alla textarea, in questo caso con id “ingredienti”.
Ora però c’è bisogno, per evitare confusione o pasticci dal parte dell’utente, di limitare le scelte per la formattazione a quelle base (corsivo, grassetto, ecc.) perciò nel nostro file admin.css andremo ad aggiungere le classi dei suddenti pulsanti (ricavati usando tools come Firebug) e applicando un bel display:none, niente di più semplice.
.mce_wp_more, .mce_fullscreen, .mce_wp_adv,
.mce_bullist, .mce_numlist, .mce_blockquote {display: none !important;}
Spero possa risultare di aiuto a chi come me vuole poter offrire non solo un buon lavoro per quando riguarda il front-end di un template ma anche una esperienza per i gestori del sito più naturale possibile.