Orion42 Blog

~IT made easy~

Uncategorized

WP-Modificare la posizione di sharedaddy in un post

Dal plugin-editor seleziona Jetpack e quindi jetpack/modules/sharedaddy/sharing-service.php.

Scolla il file nell’editor fino in fondo. Quasi alla fine (circa 3 righe dalla fine) troverai le seguenti espressioni:

add_filter( ‘excerpt_length’, ‘calculate_excerpt_length’ );
add_filter( ‘the_content’, ‘sharing_display’, 19 );
add_filter( ‘the_excerpt’, ‘sharing_display’, 19 );

I filtri vanno a modificare i testi presenti nel blog ed in particolare “the_content”, ovvero il testo dell’articolo.

Dalla pagina del codex di wordpress (http://codex.wordpress.org/Function_Reference/add_filter) possiamo leggere la sintassi del comando add_filter:

 add_filter( $tag, $function_to_add, $priority, $accepted_args );

Ed in particolare:

$priority
(integer) (optional) Used to specify the order in which the functions associated with a particular action are executed. Lower numbers correspond with earlier execution, and functions with the same priority are executed in the order in which they were added to the action.
Default: 10

Il parametro $priority ci da informazioni su quale filtro è eseguito prima e quale dopo. Valori più bassi fanno eseguire il filtro prima.

Nel mio caso avevo sul blog il plugin Quick Adsense che modifica il testo e alla fine di esso aggiunge le pubblicità di google.  Solamente che esse comparivano prima del testo di condivisione di ShareDaddy e quindi le voci di condivisione erano molto meno visibili, poichè posto in fondo, dopo la pubblicità (e non prima come volevo io).

Questi sono i filtri di QuickAdsense:

add_filter(‘plugin_action_links’,’ads_plugin_links’,10,2);
add_filter(‘the_content’, ‘process_content’);

Nell’ultima riga, non essendo specificata una priorità, sarà utilizzata quella di default, ovvero 10.  Sharedaddy invece (vedi sopra) ha priorità 19, quindi verrà eseguito dopo.

A questo punto, capito il trucco, basta cambiare la priorità ad uno dei due servizi. Io ho scelto di modificare quello di Sharedaddy, impostando la nuova priorità a 9 (invece di 19).

add_filter( ‘the_content’, ‘sharing_display’, 9 );

Ora verrà eseguito prima Sharedaddy (priorità 9) e poi l’altro plugin (priorità non impostata e quindi 10 di default).

Alternativamente si può togliere il vecchio filtro e riinserirlo correttamente dal file function.php del tema:

remove_filter( 'the_content', 'sharing_display',19); add_filter( 'the_content', 'sharing_display', 9 ); 

Altrimenti per aggiungere un ulteriore barra di condivisione in un altro punto qualsiasi del template si dovrebbe aggiungere nel punto voluto  la stringa seguente  (ma in alcuni casi purtroppo senza altre modifiche viene visualizzata solo una barra nella pagina… ):

<?php echo sharing_display(); ?>

Fonti utili:

Rispondi

Skip to content