È possibile modificare l'URL dei custom post type per nascondere lo slug del post type?
Vorrei trasformare /{custom-post-type}/{post-name} in /{post-name}, è possibile?
Se questo non è possibile, posso cambiare le etichette/terminologia in Pagine o Articoli in modo che possano essere chiamati "Clienti" o "Progetti" ecc?
Devi utilizzare l'opzione 'rewrite'
nella registrazione del tuo custom post type.
Esempio:
'rewrite' => array('slug' => 'products'),
Dal codex
Quando si utilizza un namespace per un URL ma si vuole comunque mantenere una struttura "pulita" dell'URL, è necessario aggiungere l'elemento "rewrite" all'array. Ad esempio, prendendo l'esempio "ACME Widgets" citato sopra:
add_action( 'init', 'create_post_type' ); function create_post_type() { register_post_type( 'acme_product', array( 'labels' => array( 'name' => __( 'Products' ), 'singular_name' => __( 'Product' ) ), 'public' => true, 'has_archive' => true, 'rewrite' => array('slug' => 'products') ) ); }
Il codice sopra genererà un URL come http:/example.com/products/%product_name% (vedi descrizione di %product_name% sopra). Nota che abbiamo usato la forma plurale qui, un formato che alcune persone preferiscono perché implica un URL più logico per una pagina che contiene una lista di prodotti, ad esempio http:/example.com/products/.
Inoltre, tieni presente che l'uso di un nome generico come "products" potrebbe potenzialmente creare conflitti con altri plugin o temi che usano lo stesso nome, ma molte persone preferiscono evitare URL più lunghi e oscuri come http:/example.com/acme_products/foobrozinator. Risolvere un conflitto di URL tra due plugin è più semplice perché la struttura dell'URL non è memorizzata in modo persistente in ogni record del post nel database nello stesso modo in cui sono memorizzati i nomi dei custom post type.

Ho appena modificato uno slug per un custom post type (in questo caso, l'ho cambiato da "best-practices"
a "bestpractices"
). Avevo copiato del codice che aveva uno slug vuoto, così:
'rewrite' => array('slug' => ''),
Dato che originariamente era lasciato vuoto, WordPress utilizzava semplicemente il nome del custom post type ("best-practices"
) come slug. Ho modificato la mia riga di codice in
'rewrite' => array('slug' => 'bestpractices'),
Volevo solo segnalare qui che sarà necessario reimpostare i permalink per far sì che la modifica abbia effetto, se si stanno cambiando gli slug per custom post type già esistenti.

sì, possiamo cambiare lo slug. Segui questi passaggi:
Passo 1: Cambia il nome dello slug dall'opzione "rewrite" (si trova in Funzioni del Tema (functions.php))
'rewrite' => array('slug' => 'prodotti')
Passo 2: Resetta i permalink. Altrimenti darà errore 404. 1> vai alla dashboard di WordPress 2> Impostazioni --> Permalink
Nella sezione impostazioni comuni--- 1° cambia in "semplice" e salva. Dopodiché, cambia nuovamente l'impostazione nel formato che preferisci.
