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

8

Je sais que cela n'est pas suggéré et que cet argument fait l'objet de nombreuses discussions. Malheureusement, après une semaine d'essais et de tests, je n'ai pas encore réussi à retirer le slug de mon type personnalisé. Voici la situation:

La structure d'URL dont j'ai besoin

  • poste / blog / mon-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': hiérarchique; sans aucune règle de «réécriture».
  • Type de portefeuille personnalisé: non hiérarchique; 'rewrite' => array ('with_front' => false)
  • Structure de permalien: / blog /% postname% /
  • En première page, je mets la page statique «blog»

Le problème

  • post blog / mon-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 du post "statique" "Ma page de test" est / blog / static / my-test-page

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

J'ai retiré le devant de l'url ... bon! Maintenant, j'ai / static / my-test-page

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

Il n'enlève pas la limace. J'ai encore / static / my-test-page .

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

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

Plugin «Supprimer la limace 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 faire 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 l'ajout, function book_rewrite_rule()il est dit que mon type personnalisé sera désormais accessible à partir de / ma-page-test ainsi que / statique / ma-page-test , mais cela ne fonctionne pas pour moi. Je ne peux y accéder qu'à partir de / static / my-test-page . J'ai aussi essayé d'appliquer tout le tutoriel, en faisant aussi quelques changements et tests, mais sans succès

Le tutoriel de vip.wordpress

Si je change «événement» par «statique» dans les deux fonctions, je peux accéder à ma page à partir du blog / de la page parent / de ma page de test . Si j'ajoute 'rewrite' => ('with_front' => false) tout se brise et je ne peux accéder qu'à partir de la page statique / parent / ma-page-test

Autres solutions et tests

Malheureusement, avec ma réputation actuelle, je ne peux pas lier plus de deux liens. Mais j'ai également essayé la solution trouvée dans ryansechrest.com, shibashake.com et - bien sûr - TOUTES les questions postées dans ce portail auparavant. Bien sûr, chaque fois que j'ai effacé toutes les règles de permaliens, visiter la page de configuration, enregistrer les options, les changer deux fois et les enregistrer à nouveau, en utilisant le global $wp_rewrite; $wp_rewrite->flush_rules();. J'ai essayé beaucoup de combinaisons avec le tableau de «réécriture» et les différentes solutions ci-dessus.

Avez-vous une suggestion?

Marco Panichi
la source
1
Relancer une question qui a été posée il y a très longtemps (excellente question BTW). Avez-vous déjà trouvé une solution? Une solution pourrait-elle être d'utiliser les types de page WP par défaut et d'utiliser un modèle de page personnalisé?
Jen
Salut @guiniveretoo, je n'ai toujours pas trouvé de solution. Dans mon site Web, j'implémente une expérience: je convertirai tous mes types de messages personnalisés (portfolio, outils, informations) et tous les messages en pages. De cette manière, je simplifierai la structure et les URL. Ensuite, je spécifierai des pages avec des champs méta; aussi la partie avant sera plus simple.
Marco Panichi

Réponses: