È possibile modificare l'URL per il tipo di post normale senza influire sull'URL di altri tipi di post personalizzati?


9

Il dilemma

Ho alcuni tipi di post personalizzati:

  • Elementi del portafoglio
  • Testimonianze
  • FAQs

Le strutture URL per questi tipi di post personalizzati sono:

  • mysite.com/ portfolio / name-of-custom-post
  • mysite.com/ testimonial / nome-di-post-personalizzato
  • mysite.com/ faq / nome-di-post-personalizzato

Vorrei utilizzare il normale tipo di post WordPress integrato per controllare i nostri post di blog e fare in modo che l'URL di ciascun post di blog sia così:

  • mysite.com/ blog / nome-di-post

Se vado in Impostazioni> Permalink e modifico la struttura dell'URL in modo che sia come ...

/blog/%postname%/

... quindi sono interessati gli URL di tutti i miei tipi di post, che si traducono in:

  • mysite.com/ blog / portfolio / name-of-custom-post
  • mysite.com/ blog / testimonial / nome-di-post-personalizzato
  • eccetera...

La domanda

Cosa mi piacerebbe sapere: è possibile regolare la struttura dell'URL per il tipo di post WordPress integrato senza influire sulla struttura dell'URL di altri tipi di post personalizzati?

L'unico altro modo in cui vedo per risolvere il mio dilemma è creare un altro tipo di post personalizzato chiamato "Blog". Questo sembra uno spreco, perché allora non userò affatto il tipo di post WordPress incorporato.

Se qualcuno ne ha bisogno, il perché

Se qualcuno si chiede perché ho bisogno di "blog" nell'URL così male, è perché stiamo unendo il nostro blog nella stessa installazione del nostro sito e vogliamo mantenere intatti gli URL in modo da non perdere il prezioso succo di Google.

Qualsiasi aiuto è molto apprezzato - grazie!


Ho appena fatto questa stessa domanda quasi parola per parola, felice di averlo trovato, grazie
JasonDavis,

Risposte:


14

Puoi farlo con la registrazione personalizzata del tipo di post.

1) Imposta il permalink predefinito nell'amministratore di WordPress sulla struttura desiderata, ad esempio:

/ Blog /% postname%

2) Aggiungi il parametro "slug" e "with_front" all'array rewrite nella funzione register_post_type. "slug" deve essere il nome del tuo tipo di post.

  $args = array(
    // ...
    'rewrite' => array(
        'slug' => 'your_post_type',
        'with_front' => false
    ),
    // ...
  ); 
  register_post_type('your_post_type',$args);

Ciò dovrebbe generare le seguenti regole di riscrittura:

Post predefinito: http://example.com/blog/%postname%
Pagina predefinita: http://example.com/%postname%
Tipo di post personalizzato: http://example.com/your_post_type/%postname%

MODIFICARE

Il parametro "slug" è facoltativo. Se non lo imposti, viene utilizzato il nome del tuo tipo di post personalizzato. Dai un'occhiata al riferimento di funzione su register_post_type: http://codex.wordpress.org/Function_Reference/register_post_type


Sei assolutamente l'uomo. Funziona perfettamente; grazie!
Ryan

@rofflox. Dai un'occhiata a questa domanda ( wordpress.stackexchange.com/questions/52471/… ). Ho provato la tua risposta ma questo non mi ha aiutato.
Joe medio

0

Alternativa: è possibile impostare reindirizzamenti permanenti 301. Questo invierà le persone al link corretto e manterrà intatto il tuo succo di Google. Non conosco la risposta alla tua domanda specifica.


Grazie signor. Ho chiesto alla nostra persona SEO di farlo e mi è stato detto che hai perso un po 'di succo di Google facendo 301 reindirizzamenti. Mi piacerebbe non perderne nessuno, ma se tutto il resto fallisce potrei semplicemente seguire questa strada.
Ryan,

@Ryan - +1 divertente la mia compagnia ha appena chiesto di fare esattamente la stessa cosa di questo pomeriggio di ieri. Spero che qualcuno arrivi.
Mrtsherman,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.