WordPress: come escludere categorie da home e da notifiche jetpack

articoli correlati jetpack modificare palle colorate

Oggi un paio di istruzioni semplici semplici che però risolvono un mucchio di problemi.

Situazione iniziale

Abbiamo un sito in wordpress, che in home page visualizza tutti i post pubblicati in ordine di data e che, attraverso il plugin Jetpack, invia una notifica ad ogni iscritto per ogni nuovo articolo.
Tutto bene, però oggi ci troviamo a dover scrivere alcuni articoli che sono funzionali allo sviluppo del sito, che si collegano agli articoli scritti in precedenza, ma che non devono assolutamente comparire in home page nè tantomeno essere notificati agli iscritti.

Come fare?

La soluzione è banale e richiede tre righe di codice, da inserire nel file functions.php del nostro sito.

(Se è costruito su un tema child nessun problema, altrimenti consiglio di utilizzare un plugin tipo Code Snippets o qualcosa di simile, per evitare problemi con gli aggiornamenti del tema).

Quindi, per escludere una determinata categoria dell’home page, basta inserire il codice che segue, sostituendo a

IDCategoriaDaEscludere

l’ID della categoria che vogliamo escludere dall’home page.

<?php
function escludi_categoria($query) {
if ( $query->is_home ) {
$query->set('cat','-IDCategoriaDaEscludere');
}
return $query;
}
add_filter('pre_get_posts', 'escludi_categoria');
?>

NB! Far attenzione al simbolo che c’è davanti a IDCategoriaDaEscludere (che altro non è che un  meno).
E per sapere qual’è l’ID della nostra categoria? Dal menu a sinistra di wordpress, basta selezionare ARTICOLI/CATEGORIE, comparirà l’elenco di tutte le categorie del sito. Cerchiamo la nostra, avviciniamo il mouse al nome ed in basso a sinistra nella finestra apparirà una striscia con un testo lunghissimo… ok, l’unico numero all’interno di tutta questa striscia è il nostro ID 🙂 (dovrebbe essere nei dintorni di …taxonomy=category&tag_ID=22…)

Ok, primo problema risolto. Per il secondo ci viene in soccorso la sezione dedicata nel sito di jetpack:

sempre nel nostro file functions.php andiamo a inserire il codice seguente, sostituendo al nome SLUGCategoria il nome della nostra categoria da escludere (Dove si trova? come prima: ARTICOLI/CATEGORIE, cerchiamo la nostra categoria e troviamo lo slug, in questo caso di seguito sulla stessa riga :-))

<?php
add_filter( 'jetpack_subscriptions_exclude_these_categories', 'exclude_these' );
function exclude_these( $categories ) {
$categories = array( 'SLUGCategoria',);
return $categories;
}
?>

Salviamo tutto, incrociamo le dita e…  dovremmo aver risolto anche il secondo problema!
NOTA BENE PER PRINCIPIANTI! Se siamo all’interno del file functions.php e stiamo scrivendo la nostra funzione di seguito alle altre, non bisogna mettere né <?php all’inizio della funzione né ?> alla fine!!!

Ciao! Questo è il posto giusto per opinioni, domande, chiacchiere in libertà...