Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

For my theme i created custom post types (realisation, video).

All is working now without the rewriting, but i have trouble when i apply rewriting.

my urls are like this :

1) ?realisation=habillage-de-stands&parentid=38 // for custom post type 'realisation'
2) ?video=jardin-d-ailleurs&parentid=visite-jardin // for custom post type 'video'
3) ?video_category=institutionnel&parentid=pedagogique //for custom tag 'video_category' associated to custom post type 'video'
4) ?p=31&parentid=34 //for blog article
5) ?tag=site-web&parentid=34 //for tags

I tried in permalink

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

and i added in functions.php

function add_query_vars($query_vars)
{
    $query_vars[] = "parentid";
    return $query_vars;
}
add_filter('query_vars', 'add_query_vars');

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_rewrite_rule('^video_category/([^/]*)/([^/]*)', 'index.php?video_category=$matches[1]&parentid=$matches[2]', 'top');
}
add_action( 'init', 'add_parentid_rewrite' );

and i have

?realisation=habillage-de-stands&parentid=38

becomes

realisation/habillage-de-stands/&parentid=0/

the link is working but i wish to have

realisation/habillage-de-stands/38/

also

?video=jardin-d-ailleurs&parentid=visite-jardin

becomes

video/jardin-d-ailleurs/&parentid=visite-jardin/

instead of

video/jardin-d-ailleurs/visite-jardin

and also

?video_category=institutionnel&parentid=pedagogique

becomes

video_category/institutionnel/&parentid=&parentid=pedagogique //width 2 &parentid= !!but the link is working

instead of

video_category/institutionnel/pedagogique

=> what is wrong ? and why &parentid= stays in the rewrite link ?

But

?p=31&parentid=34

becomes

article2/&parentid=0

and doesn't work

=> What could be done here for this ?

The parentid is well taken into account when no rewrite is done (by doing a simple echo $wp_query->query_vars['parentid'];). But with the rewrite, the value is messed up!

for instance :

?p=31&parentid=34

gives me empty string with rewrite

?realisation=habillage-de-stands&parentid=38

gives me the string '&parentid=0'

Thanks in advance

--- EDIT --- if i var_dump($wp_query); in header.php, i've got in my results - when permalinks ARE NOT rewritten :

["query_vars"]=>
  array(58) {
    ["realisation"]=>
    string(19) "habillage-de-stands"
    ["post_type"]=>
    string(11) "realisation"
    ["name"]=>
    string(19) "habillage-de-stands"
    ["parentid"]=>
    string(2) "38"
...
   }
 ["query"]=>
  array(4) {
    ["realisation"]=>
    string(19) "habillage-de-stands"
    ["post_type"]=>
    string(11) "realisation"
    ["name"]=>
    string(19) "habillage-de-stands"
    ["parentid"]=>
    string(2) "38"
  }

when permalinks ARE rewritten :

["query_vars"]=>
array(58) {
    ["page"]=>
    int(0)
    ["realisation"]=>
    string(31) "habillage-de-stands/&parentid=0"
    ["post_type"]=>
    string(11) "realisation"
    ["name"]=>
    string(9) "parentid0"
    ["pagename"]=>
    string(9) "parentid0"
   ["parentid"]=>
   string(11) "&parentid=0"
    ...
}
["query"]=>
array(4) {
    ["realisation"]=>
    string(31) "habillage-de-stands/&parentid=0"
    ["post_type"]=>
    string(11) "realisation"
    ["name"]=>
    string(31) "habillage-de-stands/&parentid=0"
}

Does anyone has a clue ?

share|improve this question
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.