web-dev-qa-db-fra.com

Réécrire le slug d'URL de type de message personnalisé

Bonjour StackExchange WP_development :)

Je suis un peu embarrassé par celui-ci et j'espère certainement que vous pourrez me consulter davantage. Je donne un coup de main avec un site WordPress qui est construit comme un "site unique". Ce qui me trompe, c'est la réécriture d'URL.

J'ai cherché sur le Web une solution, mais sans succès.

La structure du site est la suivante

-Main page - Page template
 --City 1 - Page template
   ---VIP - Page template
      ----VIP subpage - Page template
 --City 2 - page template
   ---VIP - Page template
      ----VIP subpage - Page template
 --City 3 - page template
   --- EVENTS - Page template
      ----CPT which redirects out of stucture(single event)

Voici un exemple de la structure d'URL:

Current URL(page templates): www.example.com/city/region/vip
Current URL(for the CPT): www.example.com/event/region/beer-pong/
Desired URL(for the CPT): www.example.com/city/region/event/beer-pong

Et mon type de courrier recommandé utilise les éléments suivants:

'rewrite'            => array( 'slug' => 'byer/event' ),
'hierarchical'       => true,
'has_archive'        => false,
'supports' => array( 'title', 'editor', 'thumbnail', 'page-attributes'),

Normalement, j'ai le goût de développer WordPress, mais je ne peux tout simplement pas envelopper mon esprit autour de cela ....

Malheureusement, le format de l'URL est essentiel car il existe une logique développée pour les "couches" du site/des pages.

J'espère que les informations fournies suffisent à vous éclairer.

CE QUE JE VEUX: réécrire cette URL:/événement/région/bière-pong/pour contenir une ville: ville/région/événement/bière-pong

CE QUE J'AI: Actuellement, mes événements sont créés sous la forme d'un type de publication personnalisé plutôt que d'une page. Cela ne peut malheureusement pas être modifié car le client ne le permet pas.

J'ai besoin de votre aide pour résoudre ce problème!

3
Andreas Therkildsen

Si la ville et la région sont toujours des chaînes city et region, vous pouvez procéder de la sorte.

Pour votre cas spécifique, vous pouvez le faire comme ceci:

'rewrite'            => array( 'slug' => 'city/region/event' ),
'hierarchical'       => true,
'has_archive'        => false,
'supports' => array( 'title', 'editor', 'thumbnail', 'page-attributes'),

Si la ville devient une ville et que la région devient une région dans l’URL, c’est-à-dire que la ville devient London et que la région devient South East, vous devez utiliser global $wp_rewrite et écrire l’expression régulière pour modifier l’ajout des slugs.

Vous pouvez trouver plus de documentation sur WordPress Codex - https://codex.wordpress.org/Class_Reference/WP_Rewrite .

2
Dale Obradovic