Sto componendo i vari custom content type per immagazzinare le varie
tipologie di contenuto che abbiamo nel sito attuale.
Parto dalle biografie, che sono una delle parti più ampie e pregiate.
Date un occhio qui:
http://anpi.it/uomini.htm
L'obiettivo è di poter navigare fra le biografie per Cognome,
selezionando prima l'iniziale, così come avviene adesso. Oppure
selezionando una regione, che sarà la regione di nascita o di dove è
stato svolto il partigianato (quindi è possibile più di una
selezione).
Ho pensato anche ad una selezione per decorazione, tipo Medaglia d'Oro
al Valor Militare. E una classificazione per sesso.
Ma per ora non le ho implementate. Non so se sono buone idee, forse la prima sì.
Al momento sono interessato a comporre l'amministrativo.
Campi:
- Nome
- Cognome
- iniziale del Cognome (se non specificata dovrebbe essere calcolata
automaticamente)
- abstract (ad esempio, vedete come è strutturato il testo qui:
http://anpi.it/uomini/ballerini.htm)
- corpo della biografia
- autore (perché l'autore delle oltre 2500 biografie ha fatto la
Resistenza e non ho intenzione di sottoporlo ad un corso intensivo su
WP, quindi devo poter specificarlo a mano)
Tassonomia:
- Regione o Nazione (non gerarchica)
Qui trovate il codice che ho scritto e che non funziona malaccio.
Le domande stanno dopo il codice.
---------------------------------------------------------
add_action( 'init', 'biography_create_post_type' );
function biography_create_post_type() {
register_post_type( 'biography',
array(
'labels' => array(
'name' => __( 'Biographies' ),
'singular_name' => __( 'Biography' ),
'add_new' => __( 'Add New' ),
'add_new_item' => __( 'Add New Biography' ),
'edit' => __( 'Edit' ),
'edit_item' => __( 'Edit Biography' ),
'new_item' => __( 'New Biography' ),
'view' => __( 'View Biography' ),
'view_item' => __( 'View Biography' ),
'search_items' => __( 'Search Biographies' ),
'not_found' => __( 'No biographies found' ),
'not_found_in_trash' => __( 'No biographies found in Trash' ),
'parent' => __( 'Parent Biography' ),
),
'description' => __( 'A biography is a text describing the life of
women and men that made Resistance.' ),
'menu_position' => 20,
'public' => true,
'show_ui' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'hierarchical' => false,
'supports' => array( 'author', 'excerpt', 'editor' ),
'rewrite' => array( 'slug' => 'donne_e_uomini', 'with_front' => false ),
)
);
register_taxonomy( 'region', 'biography', array( 'hierarchical' =>
false, 'label' => __('Regione o nazione estera') ) );
}
add_action("admin_init", "biography_admin_init");
add_action('save_post', 'biography_save');
function biography_admin_init() {
add_meta_box("biography-meta", "Nome e Cognome",
"biography_meta_options", "biography", "normal", "high");
}
function biography_meta_options() {
global $post;
$custom = get_post_custom($post->ID);
?>
<label>Nome:</label><input name="first_name" value="<?php echo
$custom["first_name"][0]; ?>" />
<label>Cognome:</label><input name="family_name" value="<?php echo
$custom["family_name"][0]; ?>" />
<br /><label>Iniziale del cognome:</label><input
name="family_name_ini" value="<?php echo
$custom["family_name_ini"][0]; ?>" /> (opzionale)
<?php
}
function biography_save() {
global $post;
if ( $_POST["family_name_ini"] ) {
update_post_meta($post->ID, "family_name_ini", $_POST["family_name_ini"][0]);
} else {
update_post_meta($post->ID, "family_name_ini", $_POST["family_name"][0]);
}
update_post_meta($post->ID, "family_name", $_POST["family_name"]);
update_post_meta($post->ID, "first_name", $_POST["first_name"]);
}
--------------------------------------------------
1. Dove lo metto questo codice?
Io l'ho piazzato in coda a functions.php del tema scelto, è una buona idea?
Quali sono le buone pratiche in questo caso?
2. Al momento l'ordine in cui vengono visualizzati i campi
nell'amministrativo è:
- corpo della biografia
- nome, cognome, iniziale
- abstract
- autore
A me piacerebbe piazzare il corpo della biografia dopo l'abstract, come si fa?
3. Per far veloce ho usato 'excerpt' per fare l'abstract, ma è
necessario scrivere testo ricco, con dei link.
Com'è che posso fare? Devo definire un nuovo campo custom e collegare
alla relativa textarea un'istanza di TinyMCE?
4. Vedete grosse idiozie?
Grazie,
Giovanni
Il codice è semplice, dubito sia facilmente causa di incompatibilità in avanti.
E non vedo grandi problemi di sicurezza, perché è comunque tutta roba
lato amministrativo.
Giovanni
Il 05 luglio 2010 12.10, Eusebio Giandomenico
<eusebio.gi...@gmail.com> ha scritto:
> --
> Hai ricevuto questo messaggio perché sei iscritto al gruppo "Anpi.it" di
> Google Gruppi.
> Per postare messaggi in questo gruppo, invia un'email a
> anp...@googlegroups.com.
> Per annullare l'iscrizione a questo gruppo, invia un'email a
> anpi_it+u...@googlegroups.com.
> Per ulteriori opzioni, visita il gruppo all'indirizzo
> http://groups.google.com/group/anpi_it?hl=it.
>
Certo, hai ragione.
Però se voglio riprodurre l'attuale situazione con una catalogazione
per Cognome (e iniziale del cognome), più una per regione/i di
nascita/partigianato come faccio?
Il codice è semplice, dubito sia facilmente causa di incompatibilità in avanti.
E non vedo grandi problemi di sicurezza, perché è comunque tutta roba
lato amministrativo.
Prendi ad esempio l'ultimo che mi hai segnalato: in WP3.0 è una
tragedia, se attivi il debug vieni tempestato da warnings perché usa
funzioni deprecate da tempo, anche dalla versione 2.0
Un plugin così chiaramente non lo posso usare.
Ho visto che la comunità di WP discute se creare o meno un gruppo di
plugin core, che avanzano di pari passo al motore. Ecco, con plugin in
questa categoria mi sentirei più tranquillo, ma con quelli di terzi
no.
Giovanni
Il 05 luglio 2010 16.00, Eusebio Giandomenico
<eusebio.gi...@gmail.com> ha scritto:
>
>
Ho visto che la comunità di WP discute se creare o meno un gruppo di
plugin core, che avanzano di pari passo al motore. Ecco, con plugin in
questa categoria mi sentirei più tranquillo, ma con quelli di terzi
no.