È possibile modificare l'URL dei custom post type per nascondere lo slug del post type?

11 gen 2012, 12:36:50
Visualizzazioni: 27.6K
Voti: 4

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?

0
Tutte le risposte alla domanda 4
2
10

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.

11 gen 2012 12:47:09
Commenti

Penso tu abbia frainteso, voglio che i post abbiano URL puliti ma non voglio avere uno slug per il tipo di post (il metodo che hai citato dal codex).

Tom Tom
11 gen 2012 13:20:21

Grazie - ha funzionato per me!

michaelmcgurk michaelmcgurk
31 lug 2019 12:14:29
1
'rewrite' => array('slug' => '/', 'with_front' => false)

Questo permetterà di ottenere correttamente l'URL come desiderato, ma restituirà un errore 404 a meno che non venga gestito nel tuo tema.

6 set 2012 18:09:43
Commenti

Vero riguardo al 404, ma come menziona @Subhankar Adhikary, ri-salvare i permalink lo risolve

Fanky Fanky
5 mag 2020 14:54:27
1

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.

3 feb 2012 16:01:02
Commenti

GRAZIE! Ho appena passato un'ora a cercare di capire perché i miei permalink non si aggiornavano. Non avevo capito che fosse necessario entrare nell'admin e "Salvare" nuovamente la struttura dei permalink.

Nathan J.B. Nathan J.B.
27 ago 2014 09:17:01
1

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.

21 apr 2018 13:55:18
Commenti

Basta fare clic sul pulsante salva nella sezione dei permalink, penso che non siano necessarie modifiche.

Fanky Fanky
5 mag 2020 14:56:32