Vorrei far visualizzare tutti i prodotti nella prima pagina del negozio ma escludere quelli in saldo, per i quali ho pagina a parte. Come fare a filtrare?
Grazie
Una soluzione pratica è creare categorie aggiuntive (tipo “novità”, “saldi”), poi creare una pagina ad hoc (e nominarla ad esempio home, oppure novità, ecc., e in questa inserire gli shortcodes di woocommerce che richiamano tali categorie.
Se ad esempio hai creato le categorie novita e saldi (oltre ad altre categorie, come pc, computer, oppure vestiti, ecc. a seconda del tuo negozio), in questa pagina ad hoc potrai mettere il seguente shortcode:
[recent_products category="saldi" operator="NOT IN"]
Questo mostrerà i prodotti recenti, ad eccezione di quelli elencati nella categoria “saldi”
Successivamente, e in maniera opzionale, potresti anche impostare tale pagine come home di woocommerce (Woocommerce –> Impostazioni).
Un’altra soluzione più fine ma a livello di codice è proprio inserire l’istruzione in php per far visualizzare tutti i prodotti ma escludere quella particolare categoria. Il seguente codice va inserito nel file functions.php del vostro tema wordpress (ideale è utilizzare un tema child/figlio, per non perdere le modifiche in caso di update del tema). Funziona richiamando lo slug (url) della categoria, cioè se la categoria ha come url “saldi”, allora il codice è il seguente:
add_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
function custom_pre_get_posts_query( $q ) {
if ( ! $q->is_main_query() ) return;
if ( ! $q->is_post_type_archive() ) return;
if ( ! is_admin() && is_shop() ) {
$q->set( 'tax_query', array(array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'knives' ), // Don't display products in the knives category on the shop page
'operator' => 'NOT IN'
)));
}
remove_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
}
Please login or Register to submit your answer