Con tutto questo in mente ho deciso di partire con una nuova avventura, issare le vele e mettermi in mare aperto, si, insomma, rimettere mano a questo blog. Era ibernato da sei o sette anni; continuava a caricare un po’ di contenuti che normalmente spargo di qua e di là ma di fatto era quasi morto. L’idea che mi aveva spinto ad aprirlo, di fatto chiudendo il mio vecchio blog su blogspot (che è ancora lì, a testimoniare il tempo che fu), era quella di tener traccia di tutti quei contenuti sparsi e distribuiti tra un numero variabile di servizi o social network. Era il periodo della grandissima ascesa di Friendfeed (RIP) che di lì a poco sarebbe stato inglobato e quindi chiuso da Facebook. Il vecchio blog, non il mio in particolare ma tutto quel mondo lì andava via via scemando, la presenza online cambiava radicalmente entrando in quella che con un po’ di enfasi definirei l’invasione barbarica… ma questo è un altro tema. L’idea era quella di un sito che tenesse traccia di tutti i miei contenuti, immagini, bookmark, citazioni, tutto quello che mettevo su Tumblr, del.icio.us, twitter, dribbble, il feed reader eccetera eccetera. All’epoca c’era anche un nome per questa tipologia di blog, Lifestream; dico c’era perché basta fare una ricerca per verificare che quel termine è legato a quegli anni, diciamo intorno al 2012.
Questa la premessa, ma oggi come lo posso portare a nuova vita? Restando su quell’idea, aggiungendo solo un paio di scelte radicali che la libertà di cui dicevo all’inizio mi permette.
La prima scelta è quella di limitare a tre pagine le opzioni di navigazione: la home page, la pagina dei singoli post e una specie di home page per gli articoli del blog (categoria Journal). Tutto il resto rimanda alle “fonti” originali. Nessuna archivio, né per le categorie, né per i/le tag. Nulla. Solo la home page e i singoli post. La seconda scelta è quella di avere tutta la parte grafica legata all’ultimo post pubblicato. In pratica ogni post è un tema (gira tutto su WordPress) che include il post stesso e la home page. Anche qui si tratta qualcosa che ha avuto un suo perché, sempre intorno al periodo 2012/2013 e che ora appartiene alla categoria dei rinnegati… comunque, dicevo, la home ha la grafica dell’ultimo post fino al momento della pubblicazione di un nuovo post e relativa nuova grafica. I vecchi post saranno visualizzati col loro tema.
Ho scelto un po’ di librerie jQuery per la visualizzazione dei contenuti esterni, caricati via feed dove ancora presenti. In particolare Masonry (ora presente in WordPress), Isotope per i filtri e Infinite Scroll. Per la home page ho fatto anche qui una scelta un po’ controintuitiva. Ho deciso di caricare solo un post, il post del blog vero e proprio che richiama il foglio di stile e visualizzare i feed importati come query post (WP_Query).
Un po’ di codice
Avere i feed visualizzati tramite WP_Query ha complicato un po’ la creazione della navigazione a ritroso ma con la funzione paginate_links il risultato è praticamente perfetto. Basterà impostare la variabile “paged” nella query:
<?php
$paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1;
$the_Query = new WP_Query( array(
'post_type' => 'post',
'posts_per_page' => 16,
'paged' => $paged,
'post__not_in' => array(get_the_ID())
)); ?>
Quindi aggiungere la funzione per la navigazione dove desideriamo visualizzarla:
<?php
echo paginate_links( array(
'base' => str_replace( 999999999, '%#%', esc_url( get_pagenum_link( 999999999 ) ) ),
'total' => $the_Equery->max_num_pages,
'current' => max( 1, get_query_var( 'paged' ) ),
'format' => '?paged=%#%',
'show_all' => false,
'type' => 'plain',
'end_size' => 2,
'mid_size' => 1,
'prev_next' => true,
'prev_text' => sprintf( '<i></i> %1$s', __( 'Newer Posts', 'text-domain' ) ),
'next_text' => sprintf( '%1$s <i></i>', __( 'Older Posts', 'text-domain' ) ),
'add_args' => false,
'add_fragment' => '',
) );
?>
Per quanto riguarda il caricamento dei singoli fogli di stile e di eventuali font legati ai singoli temi grafici questa è la parte principale caricata in header.php del tema:
<?php if ( is_home() || is_single() || is_category() ) { ?>
<?php $the_squery = new WP_Query( array(
'post_type' => 'post',
'posts_per_page' => 1,
'category__in' => 1
)); ?>
<?php if ( $the_squery->have_posts() ) : ?>
<?php while ( $the_squery->have_posts() ) : $the_squery->the_post(); ?>
<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'template_url' ); ?>/css/<?php the_ID(); ?>/style.css" />
<?php echo get_post_meta($post->ID, 'font', true); ?>
<?php endwhile; ?>
<?php endif; ?>
<?php } ?>
Come vedete dovrò solo caricare la cartella con la grafica e il foglio di stile e nominarla con l’ID del post in questione. Per i font li definirò tramite custom field nel singolo post. Non sono soddisfattissimo dal fatto di dover caricare via FTP la cartella, forse potrei utilizzare la cartella dei temi o dei plugin in modo da poter caricare tutto via WordPress ma ci vedo un po’ di controindicazioni, insomma, questo mi pare il metodo più efficace e più sicuro… ma sono pronto a cambiare idea
Conclusioni… parziali
Questo è quanto. È sicuramente un processo in divenire, ci sono un po’ di cose che voglio approfondire e migliorare (l’import dei feed è davvero molto parziale e continuamente a rischio rottura) ma l’idea continua a piacermi. Ho un archivio con tutte “le mie cose” e uno spazio dove divertirmi in totale autonomia e libertà. Ora si tratta solo di avere un minimo di costanza nello scrivere… o almeno pubblicare dei temi nuovi