Réécriture d’url d’article avec paramètre supplémentaire (Créer un compte)

  • Statut : non résolu
Affichage de 1 message (sur 1 au total)
  • Auteur
    Messages
  • #522836
    olivierbeyo
    Membre
    Initié WordPress
    30 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 3.5.1
    – Version de PHP/MySQL : 5.2.11
    – Thème utilisé : Twenty Twelve
    – Extensions en place : Monkeyman Rewrite Analyzer
    – Nom de l’hebergeur :
    – Adresse du site :

    Problème(s) rencontré(s) :
    J’ai plusieurs souci lors du passage à la réécriture des permaliens, alors je vais en décrire un pour simplifier.
    Dans mon thème j’utilise un paramêtre que j’appelle parentid pour savoir quelle est la page/article/custom post appelant.
    ex :
    – Dans mon content.php
    au lieu de

    <a href="<?php the_permalink(); ?> » title= »<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentytwelve' ), the_title_attribute( 'echo=0' ) ) ); ?> » rel= »bookmark »><?php the_title(); ?></a>

    je mets

    <a href="<?php the_permalink(); ?>&parentid=30″ title= »<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentytwelve' ), the_title_attribute( 'echo=0' ) ) ); ?> » rel= »bookmark »><?php the_title(); ?></a>

    Je précise que je mets parentid=30 de manière arbitraire, dans mon code j’aurai une valeur qui sera récupérée de la page appelante (get_query_var(‘p’) par exemple)

    Dans functions.php

    //pour déclarer la variable
    function add_query_vars($query_vars)
    {
    $query_vars[] = « parentid »;
    return $query_vars;
    }
    add_filter(‘query_vars’, ‘add_query_vars’);

    et dans header.php
    $parentid = get_query_var( ‘parentid’);

    Dans mon cas, j’ai donc des liens du type

    ?p=12&parentid=30

    en réécrivant l’url, comment faire pour ajouter le paramètre parentid
    j’ai essayé :

    //la règle supplémentaire
    function wp_insertMyRewriteRules($rules)
    {
    $newrules = array();
    $newrules[‘([^/]+)/([^/]+)$’] = ‘?p=$matches[1]&parentid=$matches[2]’;
    return $newrules + $rules;
    }
    add_filter(‘rewrite_rules_array’,’wp_insertMyRewriteRules’);

    mais « évidemment » ça ne fonctionne pas.
    avec cette règle, la réécriture devient

    /wordpress/nom-de-l-article/&parentid=30/

    au lieu de

    /wordpress/nom-de-l-article/30/

    en fait, c’est la règle « générique » qui est appliquée
    ma règle est ignorée car avec le plugin Monkeyman Rewrite Analyzer
    pour ma règle, qui apparait bien en premier, le paramètre p est barré avec le commentaire : this query variable is not public and will not be saved
    Mes questions :
    => Quelle règle doit-on écrire pour prendre en compte ce paramètre supplémentaire pour un post « standard » (?p=xx&parentid=yy)
    => Pourquoi parentid n’est pas récupéré lors de la réécriture ? ( si je fait un echo get_query_var( ‘parentid’); sans la réécriture j’ai « 30 » mais avec la réécriture j’ai « &parentid=30 » )

    Merci d’avance

Affichage de 1 message (sur 1 au total)
  • Vous devez être connecté pour répondre à ce sujet.