Come togliere la base path dalla categoria e dalle custom taxonomy
Lavorando insieme a diverse figure professionali, molto spesso devo cooperare anche con dipendenti che seguono la Search Optimization di un sito internet.
Molto spesso quello che mi chiedono è quello di poter togliere la base path dall’url delle categorie per poter indicizzare meglio e attraverso parole chiave specifiche un dato tipo di contenuto.
Le istruzioni che di solito do per fare questa operazione sono le seguenti:
- se si usa il plugin Yoast Seo per meta title e meta description esso ha un’impostazione che permette la rimozione del prefisso delle categorie.
- Fatto questo bisogna andare a ricostruire i permalink ma prima di farlo bisogna settare la base delle categorie (e dei tag) con un puntino.
In questo modo dovrebbe funzionare la richiesta SEO. Molte volte però non ho trovato risposta in questa soluzione. E bisogna aggirare il problema, come al solito, in altri modi.
Quello che ho potuto osservare è che comunque WordPress tende a non riconoscere un contenuto o un tipo di contenuto se prima non gli si dice: questo url corrisponde a questo tipo di contenuto. Per questo WordPress ha bisogno dei base path.
E infatti, approfondendo l’argomento ho trovato, per quanto riguarda Woocommerce questo articolo:
In sostanza, viene sconsigliata la rimozione della base path per quanto riguarda le categorie dei prodotti, perchè, a detta di Woocommerce stesso, WordPress altrimenti fa fatica a capire quale contenuto restituire e impiegherebbe molto più lavoro per capire la pagina da restituire.
Per fortuna però, cercando e cercando, ho trovato molti che hanno avuto nel corso del tempo lo stesso problema.
Ho usato questo plugin che permetta appunto di rimuovere il percorso di base dalle categorie di prodotto di Woocommerce e dalle pagine dei prodotti stessi.
Però ancora nessuna novità per quanto riguarda le Category e le custom Taxonomy.
Ma sono sicura che è solo questione di tempo e presto risolverò anche questa questione!
Non ho provato, ma la prossima volta che ne ho bisogno lo faccio di sicuro.
Potrebbe essere utile anche questo codice da inserire in function.php del tema child.
/* * Remove product-category in URL * Author: levantoan.com */ add_filter( 'term_link', 'devvn_product_cat_permalink', 10, 3 ); function devvn_product_cat_permalink( $url, $term, $taxonomy ){ switch ($taxonomy): case 'product_cat': $taxonomy_slug = 'product-category'; //Change product-category to your product category slug if(strpos($url, $taxonomy_slug) === FALSE) break; $url = str_replace('/' . $taxonomy_slug, '', $url); break; endswitch; return $url; } // Add our custom product cat rewrite rules function devvn_product_category_rewrite_rules($flash = false) { $terms = get_terms( array( 'taxonomy' => 'product_cat', 'post_type' => 'product', 'hide_empty' => false, )); if($terms && !is_wp_error($terms)){ $siteurl = esc_url(home_url('/')); foreach ($terms as $term){ $term_slug = $term->slug; $baseterm = str_replace($siteurl,'',get_term_link($term->term_id,'product_cat')); add_rewrite_rule($baseterm.'?$','index.php?product_cat='.$term_slug,'top'); add_rewrite_rule($baseterm.'page/([0-9]{1,})/?$', 'index.php?product_cat='.$term_slug.'&paged=$matches[1]','top'); add_rewrite_rule($baseterm.'(?:feed/)?(feed|rdf|rss|rss2|atom)/?$', 'index.php?product_cat='.$term_slug.'&feed=$matches[1]','top'); } } if ($flash == true) flush_rewrite_rules(false); } add_action('init', 'devvn_product_category_rewrite_rules'); /*Fix 404 when creat new term*/ add_action( 'create_term', 'devvn_new_product_cat_edit_success', 10, 2 ); function devvn_new_product_cat_edit_success( $term_id, $taxonomy ) { devvn_product_category_rewrite_rules(true); }
Lascia un Commento
Vuoi partecipare alla discussione?Sentitevi liberi di contribuire!