web-dev-qa-db-fra.com

Possibilité de changer l'URL pour le type de publication standard sans affecter l'URL d'autres types de publication personnalisés?

Le dilemme

J'ai quelques types de messages personnalisés:

  • Articles du portefeuille
  • Témoignages
  • FAQ

Les structures d'URL pour ces types de publication personnalisés sont les suivantes:

  • mysite.com/ portfolio / nom-de-poste-personnalisé
  • mysite.com/ testimonial / nom-de-poste-personnalisé
  • mysite.com/ faq / nom-de-poste-personnalisé

J'aimerais utiliser le type de publication WordPress intégré normal pour contrôler nos entrées de blog, et que l'URL de chaque entrée de blog soit la suivante:

  • mysite.com/ blog / nom-de-poste

Si je vais dans Paramètres> Permaliens et ajuste la structure de l'URL pour qu'elle soit comme ...

/blog/%postname%/

... alors les URL de all de mes types de publication sont affectées, ce qui entraîne:

  • mysite.com/ blog/portfolio / nom-de-poste-personnalisé
  • mysite.com/ blog/testimonial / nom-de-poste-personnalisé
  • etc...

La question

Ce que j'aimerais savoir: est-il possible d'ajuster la structure de l'URL pour le type de publication WordPress intégré sans affecter la structure de l'URL d'autres types de publication personnalisés?

La seule autre solution envisageable pour résoudre mon dilemme consiste à créer un autre type de publication personnalisé appelé "Blog". Cela semble inutile, car je n’utiliserai donc pas du tout le type de message WordPress intégré.

Si quelqu'un en a besoin, le pourquoi

Si quelqu'un se demande pourquoi j'ai tellement besoin de "blog" dans l'URL, c'est parce que nous fusionnons notre blog dans la même installation que notre site et que nous voulons conserver les URL intactes afin de ne pas perdre le précieux contenu de Google.

Toute aide est grandement appréciée - merci!

9
Ryan

Vous pouvez le faire lors de l’enregistrement de type de publication personnalisé.

1) Définissez votre permalien par défaut dans l’administrateur WordPress sur la structure de votre choix, par exemple:

/ blog /% postname%

2) Ajoutez les paramètres "slug" et "with_front" au tableau rewrite-array de la fonction register_post_type. "slug" doit être le nom de votre post-type.

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

Cela devrait générer les règles de réécriture suivantes:

 Message par défaut: http://example.com/blog/%postname%
Page par défaut: http://example.com/%postname%
Custom Post Type: http : //exemple.com/votre_post_type/%postname% 

EDIT

Le paramètre "slug" est optionnel. Si vous ne le définissez pas, le nom de votre type de publication personnalisé est utilisé. Consultez la référence de la fonction à propos de register_post_type: http://codex.wordpress.org/Function_Reference/register_post_type

14
rofflox

Alternative - Vous pouvez configurer des redirections 301 permanentes. Cela enverra les gens au bon lien et gardera votre jus Google intact. Je ne connais pas la réponse à votre question précise cependant.

0
mrtsherman