将第三个参数添加到wordpress url

时间:2013-08-07 10:34:05

标签: php wordpress .htaccess rewrite

我有网址http://domain.com/real-estate-news/phuket-luxury-property-in-high-demand-ms 其中“房地产新闻”是类别,“phuket-luxury-property-in-high-demand-ms”是帖子名称。 当我打印$ wp_query-> query_vars ['name'];它给出了post slug和$ wp_query-> query_vars ['category_name']给出了类别slug。

我想生成一个像http://domain.com/real-estate-news/phuket-luxury-property-in-high-demand-ms/xyz

这样的新网址

并希望在查询var中获取xyz,如

    echo $wp_query->query_vars['name']; // print "phuket-luxury-property-in-high-demand-ms"
    echo $wp_query->query_vars['category_name']; // print "real-estate-news"
    echo $wp_query->query_vars['section']; //print "xyz"

如何在wordpress中添加部分查询var请帮帮我

2 个答案:

答案 0 :(得分:0)

这是自定义帖子类型吗?如果是,您有更多选择。在register_post_type()的数组中,您可以输入'rewrite'参数来更改slug名称,并破解该特定CPT的特定重写规则。我把这个项目放在一边因为它的复杂性,如果你找到答案,我很乐意听到它。以下是关于此事的笔记。

register_post_type(array(
//options
'rewrite'    => array( 
'slug'       => 'beach', //a slug used to identify the post type in URLs.
'with_front' => false,
'feed'       => true,  
'pages'      => true 
), 

dreamdare.org

shibashake.com1

shibashake.com2

谨防wp.tutsplus,作者自己经常提供错误的信息。

wp.tutsplus.com

答案 1 :(得分:0)

我设法做到这一点的方法是添加重写规则。

这看起来与自定义帖子类型创建的内容非常相似,但还会收到第三个参数。 因此,在您的情况下,重写规则如下所示:

add_rewrite_rule( 
  // post-type      | post-slug          | section           
  '^real-state-news/([^/]+)(?:/([0-9]+))?/([^/]+)/?$',
  //                                                    | Here the section is added
  'index.php?post_type=real-state-news&name=$matches[1]&section=$matches[3]',
  'top'
);

//You then need to add a tag to it
add_rewrite_tag('%section%','([^&]+)');

// At this point, you should be able to grab that param
get_query_var('section')