Problème de réécriture avec utilisation de paramètres supplémentaires (Créer un compte)

  • Statut : non résolu
3 sujets de 1 à 3 (sur un total de 3)
  • Auteur
    Messages
  • #522054
    olivierbeyo
    Membre
    Initié WordPress
    30 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 3.5.1
    – Version de PHP/MySQL : 5.2.11 / 5.5.8
    – Thème utilisé personnalisé :
    – Extensions en place :
    – Nom de l’hebergeur : local
    – Adresse du site :

    Problème(s) rencontré(s) :

    n’ayant pas réussi avec les différents plugins de breadcrumb (chemin de fer) a avoir une solution satisfaisante, j’ai du ajouter un paramètre de query string (parentid) pour pouvoir créer mon chemin de fer perso.

    J’ai créé des custom post types (realisation, video).

    Le chemin de fer fonctionne correctement maintenant, mais j’ai un souci lorsque j’active la réécriture d’url.

    mes url non réécrites sont de la forme :

    1) ?realisation=habillage-de-stands&parentid=38 // pour les custom post type ‘realisation’
    2) ?video=jardin-d-ailleurs&parentid=visite-jardin // pour les custom post type ‘video’
    3) ?video_category=institutionnel&parentid=pedagogique //pour les custom tag ‘video_category’ associés au custom post type ‘video’
    4) ?p=31&parentid=34 //pour les pages
    5) ?tag=site-web&parentid=34 //pour les tags

    j’ai essayé dans les permaliens la ‘Structure personnalisée’ avec

    http://127.0.0.1/CONSTRUCTION/wordpress/%postname%/

    mais dans ce cas, les url ne fonctionnent pas (404)

    j’ai ajouté dans mon functions.php

    function add_parentid_rewrite()
    {
    add_rewrite_rule(‘^realisation/([^/]*)/([^/]*)’, ‘index.php?realisation=$matches[1]&parentid=$matches[2]’, ‘top’);
    add_rewrite_rule(‘^video/([^/]*)/([^/]*)’, ‘index.php?video=$matches[1]&parentid=$matches[2]’, ‘top’);
    }
    add_action( ‘init’, ‘add_parentid_rewrite’ );

    et j’ai
    ?realisation=habillage-de-stands&parentid=38
    qui devient
    realisation/habillage-de-stands/&parentid=0/
    le lien fonctionne certes, mais je voudrais (devrait) avoir
    realisation/habillage-de-stands/38/

    de même pour
    ?video=jardin-d-ailleurs&parentid=visite-jardin
    qui devient
    video/jardin-d-ailleurs/&parentid=visite-jardin/

    de même
    ?video_category=institutionnel&parentid=pedagogique
    devient
    video_category/institutionnel/&parentid=&parentid=pedagogique //avec 2 fois &parentid= !!
    mais le lien fonctionne
    => quel est le souci ? pourquoi le &parentid= reste dans la version réécrite ?

    par contre
    ?p=31&parentid=34
    devient
    article2/&parentid=0
    mais ne fonctionne pas

    => quel est le souci dans ce cas ? quelle solution verriez vous ?

    Merci d’avance

    #884487
    Guy
    Participant
    Maître WordPress
    14817 contributions

    il est probable qu’il faille ajouter des appels à add_rewrite_tag pour faire reconnaitre les variables de tes query strings.

    #884488
    olivierbeyo
    Membre
    Initié WordPress
    30 contributions

    Oui, j’ai ajouté dans la fonction add_parentid_rewrite, avant les règles :

    function add_parentid_rewrite()
    {
    add_rewrite_tag(« %parentid% », ‘([^/]*)’);
    add_rewrite_rule(‘^realisation/([^/]*)/([^/]*)’, ‘index.php?realisation=$matches[1]&parentid=$matches[2]’, ‘top’);
    add_rewrite_rule(‘^video/([^/]*)/([^/]*)’, ‘index.php?video=$matches[1]&parentid=$matches[2]’, ‘top’);
    add_rewrite_rule(‘^video_category/([^/]*)/([^/]*)’, ‘index.php?video_category=$matches[1]&parentid=$matches[2]’, ‘top’);
    }

    mais celà ne change rien à l’apparence du lien réécrit, ni au fonctionnement ou pas des liens.

    j’ai aussi testé avec
    add_rewrite_tag(« %parentid% », ‘([^/]*)’, ‘parentid=’);
    mais c’est pareil…
    il doit y avoir quelque chose qui doit m’échapper là.
    Si vous avez des idées

3 sujets de 1 à 3 (sur un total de 3)
  • Vous devez être connecté pour répondre à ce sujet.