web-dev-qa-db-fra.com

Comment supprimer un slug des types personnalisés hiérarchiques dans 3.5.2

Je sais que ce n'est pas suggéré et qu'il y a beaucoup de discussions sur cet argument. Malheureusement, après une semaine d'essais et de tests, je n'ai pas encore réussi à supprimer le slug de mon type personnalisé. Voici la situation:

La structure d'URL dont j'ai besoin

  • post/blog/my-blog-post [ok!]
  • pages/parent-service/service [ok!]
  • portfolio/portfolio/mon premier travail [ok!]
  • static/parent-static-page/static-page [<<< --- voici le problème]

Ma configuration

  • Wordpress 3.5.2
  • Type personnalisé 'statique': hierarchical; sans aucune règle de "réécriture".
  • Type personnalisé 'portfolio': non hiérarchique; 'rewrite' => array ('with_front' => false)
  • Structure permanente:/blog /% postname% /
  • En tant que page d'accueil, je définis la page statique "blog"

Le problème

  • post blog/my-blog-post [ok!]
  • pages/sites Web/sites-dynamiques [ok!]
  • portfolio/portfolio/mon premier travail [ok!]
  • static/who-i-am/terms [<<< --- voici le problème]

Ce que j'ai essayé

Rien

Au début, comme prévu, l'URL de la publication "statique" "Ma page de test" est/blog/static/my-test-page

'rewrite' => array ('slug' => '', 'with_front' => false)

J'ai enlevé le devant de l'URL ... bien! Maintenant, j'ai/static/my-test-page

'rewrite' => array ('slug' => false, 'with_front' => false)

Il ne supprime pas la limace. J'ai/statique/ma-test-page encore.

'rewrite' => array ('slug' => '/', 'with_front' => false)

Ça enlève la limace! Maintenant, j'ai/my-test-page . Malheureusement toutes les pages me renvoient une erreur 404 .

Plugin 'Supprimer le slug du type de message personnalisé'

Même si cela ne fonctionne que si ma structure de permalien est /% postname%, j'ai essayé d'installer ce plugin et de changer ma structure de permalien pour effectuer un test. Cela fonctionne, mais malheureusement ne respecte pas la nature hiérarchique de mon type 'statique'.

Le tutoriel de Joakin Lim

Ça ne marche pas En particulier, après avoir ajouté function book_rewrite_rule(), il est indiqué que mon type personnalisé sera désormais accessible à partir de/my-test-page ainsi que/static/my-test-page , mais il ne Travaille pas pour moi. Je peux accéder uniquement à partir de/static/my-test-page . J'ai aussi essayé d'appliquer tout le tutoriel, en effectuant quelques modifications et tests, mais sans succès

Le tutoriel de vip.wordpress

Si je modifie "événement" avec "statique" dans les deux fonctions, je peux accéder à ma page à partir de blog/page-parent/ma-page-de-test . Si j'ajoute 'rewrite' => ('with_front' => false) tout se brise et je peux accéder uniquement à partir de static/page-parent/my-test-page

Autres solutions et tests

Malheureusement, avec ma réputation actuelle, je ne peux pas lier plus de deux liens. Mais j'ai aussi essayé la solution trouvée dans ryansechrest.com, shibashake.com et - bien sûr - TOUTES les questions postées sur ce portail auparavant. Bien sûr, chaque fois que j'ai vidé toutes les règles de permaliens, je me suis rendu à la page des paramètres, j'ai sauvegardé les options, je les ai changées deux fois, puis je les ai enregistrées à nouveau à l'aide de la fonction global $wp_rewrite; $wp_rewrite->flush_rules();. J'ai essayé de nombreuses combinaisons avec le tableau 'rewrite' et les différentes solutions ci-dessus.

Avez-vous une suggestion?

8
Marco Panichi

Pour ce faire, je désactive toujours le slug lors de l'ajout du type de publication personnalisé et ajoute des réécritures personnalisées avec la fonction add_rewrite_rule.

Voir aussi cette page du codex: https://codex.wordpress.org/Rewrite_API/add_rewrite_rule

1
Robin