Tassonomia: Perché 'with_front' => false NON FUNZIONA?
Seriamente, perché 'with_front' => false
non funziona come dovrebbe? Dovrebbe rimuovere il NOME BASE DELLA TASSONOMIA e la mia domanda è perché non funziona?
Non voglio semplicemente che lo slug base della tassonomia appaia nel mio URL e il codex dice che 'with_front' =>
false dovrebbe aiutare ma non lo fa. Lasciare lo slug vuoto come 'slug'=> ''
genera un errore 404.
register_taxonomy("tax_categories", array("products"), array(
"hierarchical" => true,
"label" => "Categorie",
"singular_label" => "Categoria",
"show_ui" => true,
'update_count_callback' => '_update_post_term_count',
"rewrite" => array(
'with_front' => false,
'hierarchical' => true
)
));
Questo problema dovrebbe essere stato risolto http://core.trac.wordpress.org/ticket/16807
Per favore aiutatemi a capire questo. Grazie.
Per rimuovere il nome base della tassonomia, puoi utilizzare:
'rewrite' => ['slug' => '/', 'with_front' => false]
Tuttavia, questo farà sì che i tuoi articoli (del post type base) restituiscano errore 404, se hai i permalink impostati come http://example.com/sample-post/
. Sembra che non si possano avere sia la tassonomia personalizzata che gli articoli nella root. Pertanto dovrai andare nelle impostazioni dei Permalink e impostare una Struttura personalizzata, ad esempio /blog/%postname%/
.
Un'altra nota importante
Un effetto collaterale è che anche i tuoi CPT avrebbero questo "prefisso", ad esempio blog/products
. È qui che entra in gioco 'with_front' => false
. È progettato per eliminare l'inizio della struttura personalizzata. Quindi nella registrazione del tuo product type avresti:
register_post_type( 'products', array(
'rewrite' => array(
'slug' => 'products',
'with_front' => false
),
/* ... */
));

Il parametro with_front determina semplicemente se un link di tassonomia può avere qualcos'altro davanti, cioè parti aggiuntive del permalink provenienti dalla pagina delle opzioni dei permalink. Ad esempio, con with_front impostato su true è possibile avere:
blah.com/2011/09/tax/termine
Con with_front impostato su false, l'unica opzione possibile è:
blah.com/tax/termine

Oltre a quanto detto da @tf, per favore spiega anche perché il tuo codice fornisce una soluzione.

Mi dà un errore 404, nonostante abbia ri-salvato i permalink. Riscrive l'URL nel browser (ma non nell'area del permalink del post), ma continua a dare 404 nel browser.
