Est-il possible de modifier l'URL du type de publication standard sans affecter l'URL d'autres types de publication personnalisés?

9

Le dilemme

J'ai quelques types de messages personnalisés:

  • Éléments du portefeuille
  • Témoignages
  • FAQ

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

  • mysite.com/ portfolio / nom-de-poste-personnalisé
  • mysite.com/ testimonial / name-of-custom-post
  • 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 avoir l'URL de chaque entrée de blog comme suit:

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

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

/blog/%postname%/

... alors les URL de tous mes types de publication sont affectées, ce qui se traduit par:

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

La question

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

La seule autre façon que je vois pour résoudre mon dilemme est de créer un autre type de message personnalisé appelé "Blog". Cela semble gaspiller, car je n'utiliserai pas du tout le type de publication WordPress intégré.

Si quelqu'un en a besoin, le pourquoi

Si quelqu'un se demande pourquoi j'ai 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 garder les URL intactes afin de ne pas perdre de précieux jus Google.

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

Ryan
la source
Je viens de poser cette même question presque mot pour mot, heureux d'avoir trouvé cela, merci
JasonDavis

Réponses:

14

Vous pouvez le faire lors de l'enregistrement d'un type de publication personnalisé.

1) Définissez votre permalien par défaut dans l'administrateur WordPress sur la structure souhaitée, par exemple:

/ blog /% postname%

2) Ajoutez les paramètres "slug" et "with_front" au tableau de réécriture dans 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%
Type de publication personnalisé: http://example.com/your_post_type/%postname%

ÉDITER

Le paramètre "slug" est facultatif. 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 sur register_post_type: http://codex.wordpress.org/Function_Reference/register_post_type

rofflox
la source
Tu es absolument l'homme. Cela fonctionne parfaitement; Merci!
Ryan
@rofflox. Veuillez jeter un œil à cette question ( wordpress.stackexchange.com/questions/52471/… ). J'ai essayé votre réponse mais cela ne m'a pas aidé.
Moyenne Joe
0

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

mrtsherman
la source
Merci mrtsherman. J'ai demandé à notre personne SEO de le faire, et on m'a dit que vous perdiez un peu de jus de Google en faisant 301 redirections. J'adorerais ne pas en perdre, mais si tout le reste échoue, je peux simplement suivre cette voie.
Ryan
@Ryan - +1 drôle mon entreprise vient de demander de faire exactement la même chose que cet après-midi yesterda. Si tout va bien quelqu'un arrive.
mrtsherman