Ristrutturiamo!!!

Possiamo dichiarare la ristrutturazione essenzialmente ultimata!
Vi piace il nuovo look dello Ziqurrat?

Galeotto fu HeartBleed.
La necessità di fare aggiornamenti per tappare la falla e la coincidenza del rinnovo del contratto di hosting mi hanno spinto a fare un esteso restyling.
Del resto era molto tempo che desideravo dare una nuova veste al blog ma non trovavo mai il tempo.
Così per amore e per forza mi ci sono messa dietro ed eccoci qua.

La base di partenza è Apprise: un tema moderno, responsivo, con un’ampia varietà di personalizzazioni per layout e colori. Trovo che l’apertura fotografica in homepage e nei singoli post sia molto gradevole, adatta a valorizzare le foto dei miei golosissimi dolci. Ci sono anche diversti tipi di post a disposizione e mi piacerebbe col tempo aggiungere il mio custom type dedicato alle ricette.

E’ stato necessario fare un po’ di personalizzazione del tema, pertanto sto attualmente utilizzando un tema figlio e il mio primo (piccolo, banale ma adorabile) handmade widget 🙂

[TOC]

Titolo del blog nella testata

La prima cosa che ho modificato è stata la testata: non mi bastava solo il logo, volevo anche mantenere la visibilità del titolo perciò sono andata a modificare il file header.php  aggiungendo semplicemente

<?php echo bloginfo('title'); ?>

dentro il link del logo.
Il lavoro più impegnativo è stato quello sui CSS per rendere responsive anche questa parte:  sante media queries! 🙂

Esclusione di post dal listing del blog ed eliminazione duplicati

La parte consistente della personalizzazione ha riguardato l’organizzazione dei contenuti in homepage.
Con Apprise è possibile selezionare quale categoria di post utilizzare nell’apertura fotografica in homepage ma io non volevo mostrare un’unica categoria bensì poter scegliere volta a volta quali post promuovere in cima. Per ottenere questo scopo ho aggiunto una categoria a puro fine stilistico ma questo ha prodotto diversi problemi:

  1. i post presenti in apertura venivano duplicati nell’elenco sottostante;
  2. la categoria veniva mostrata nel menù di navigazione contestuale (breadcrumb o formichina, come vi piace di più).

Inoltre, volevo escludere una specifica categoria dall’elenco dei post del blog in quanto nel mio progetto doveva occupare la spalla.

Per eliminare i duplicati e la categoria ho cercato di ricorre ad un trucchetto alterando la query default che popola il Loop

query_posts($query_string . '&cat=-ID,-ID');

ma questo rompe la paginazione.
L’intervento corretto consiste nel fornire una nuova query al Loop (e restituirgli quella originale alla fine) dentro il file content-posts.php

//get featured post ids in an array
$featured_posts = new WP_Query(
	array(
		'posts_per_page' => 5,
		'cat' 	=> *categoryID*
	)
);
$featured_ids = array();
while($featured_posts->have_posts()) : $featured_posts->the_post();
$featured_ids[] = $post->ID;
endwhile;

//get all other posts 
$all_except_featured = new WP_query(array('post__not_in' => $featured_ids, 'order' => 'DESC', 'paged' => $paged, 'cat' 	=> -*categoryID2*  ));

//loop
while ( $all_except_featured->have_posts() ) : 
  $all_except_featured->the_post();		
  get_template_part('content');
endwhile; 
					
// restore original query 
 wp_reset_query();
?>

Per nascondere la categoria “stilistica” dalla formichina bisogna intervenire sul file breadcrumbs.php

exclude_post_categories('*IDcategory*', ' </li><li class="separator"> /</li><li> ');

Nascondere l’ingombro foto nel listing

Il listing default di Apprise prevede che tutti i post abbiano la foto, in realtà non sempre c’è ed in quesi casi vedere lo spazio bianco vuoto accanto al testo è proprio brutto.
Per eliminare l’inconveniente bisogna modificare post-formats.php commentando o eliminando il div con l’immagine segnaposto inserita nel caso manchi la foto del post.

if ( of_get_option('blog_content') == 'Excerpt') {
	if ( has_post_thumbnail() ) { ?>
		<div class="image-holder">
			<div class="thumb-wrapper imgLiquidFill imgLiquid">
				<?php the_post_thumbnail('full'); ?>
			</div>
		</div>
	<?php 
	}else{ 
                /*<div class="image-holder">
			<div class="thumb-wrapper imgLiquidFill imgLiquid">
				<img class="attachment-full wp-post-image rs-slide-image" width="1024" height="500" alt="slide" src="<?php echo get_template_directory_uri() ?>/images/assets/slide.jpg">
			</div>
		</div>*/
	
	} 
}

Personalizzazione della tag cloud

I tag sono degli strumenti utilissi ma è facile con l’andare del tempo abusarne. La tag cloud default di WordPress appena attivata bacchetta le mani dei taggatori furiosi, tipo me 🙂 Dal pannello di admin non ci sono molte opzioni per customizzarla però è possibile agire dal file functions.php
La documentazione sta nel Codex

add_filter( "widget_tag_cloud_args", "my_tag_cloud_args" );
   function my_tag_cloud_args($in){
   return "smallest=0.8&largest=2.2&number=15&orderby=count&order=RAND&unit=em&exclude=3,15,16";
   }

Widget post nella sidebar

Nel mio blog riservo uno spazio alla promozione di eventi di solidarietà e volontariato. Voglio che questi post abbiano la maggiore visibilità possibile pertanto li voglio nella spalla, sempre presenti.
Esistono svariati plugin per ottenere questo scopo, io ho preferito evitare di appesantire ulteriormente il blog e crearmi un plugin ed un widget su misura.
A questo scopo ho trovato molto utili queste due guide
How to create a siste specific WordPress plugin
How to create a custom WordPress widget

Una delle funzioni di base del nuovo wordpress – la barra di condivisione social – si è infilata non voluta nella visualizzazione del mio post in spalla. Per questo motivo ho dovuto disabilitarla localmente

 remove_filter( 'the_excerpt', 'sharing_display', 19 );

4 commenti su “Ristrutturiamo!!!”

  1. Salvo ha detto:

    Perdonami per la mia ignoranza ma non ho capito dove dovrei inserire il codice per ovviare alla duplicazione dei post già in evidenza. A tal fine ho creato una categoria denominata “In evidenza”.
    Questo è il mio content-posts.php







    1. Ziqu ha detto:

      Ciao, va messo appena sotto le breadcrumbs, dove inizia il loop. Nel file originale del tema apprise a riga 19 trovi il commento start the loop e un while.
      Qui devi inserire un if che gestisce in modo diverso se è prima pagina o meno .
      if(is_front_page()){ *mio codice*} else{
      while ( have_posts() ) : the_post();
      get_template_part('content');
      endwhile;
      }

  2. flavio ha detto:

    Ciao, non mi è chiaro dove mettere il loop per eliminare i posts duplicati in home page. Potresti farmi vedere la pare di codice del content-posts in cui inserire le istruzioni che hai scritto? Grazie

    1. Ziqu ha detto:

      Dentro il div con classe post-single, dopo le breadcrumbs, dove inizia il test per verificare se è la homepage.

      
      	if(is_front_page()){
      	         $featured_posts = new WP_Query{...}
      
      

Commenti chiusi