[英]Custom URL structure in Wordpress
我有3种自定义帖子类型:
我使用ACF在这些自定义帖子类型之间建立了一些关系,因此开发位于顶部,并且在其下可以有许多house_type。 然后,house_type可以在其下面有许多房间。
我想修改url结构,使其也具有层次结构,以便用户可以转到/ {development},它将显示单个开发页面,其中列出了开发中的所有house_types。 然后,如果他们单击房屋类型,则URL为/ {development} / {house_type},并显示单个house_type页面,该页面将列出该房屋类型中的所有房间。 最后,如果他们单击某个房间,则URL将为/ {development} / {house_type} / {room},并显示包含该房间信息的单个房间页面。
我已经尝试了很多事情,但是还没有实现。 在执行重定向时,以下内容在一定程度上有效,但并不完美。 就像我进入/ {development} / {house_type}一样,它会重定向到/ house-types / {house-type},这是正确的页面,但我不希望URL更改。 另外,如果我转到/ {development} / {house_type} / {room},则URL正确,但显示的是单个开发页面,而不是单个房间页面。
function my_rewrite_rules() {
flush_rewrite_rules();
add_rewrite_tag( '%development%', '([^&]+)' );
add_rewrite_tag( '%room%', '([^&]+)' );
add_rewrite_tag( '%house-type%', '([^&]+)' );
add_rewrite_rule( '^%development%/%room%/([^/]*)?', 'index.php?room=$matches[1]' );
add_rewrite_rule( '^%development%/([^/]*)?', 'index.php?house_type=$matches[1]' );
add_rewrite_rule( '^([^/]*)/?', 'index.php?post_type=development&development=$matches[1]' );
}
add_action( 'init', 'my_rewrite_rules' );
我究竟做错了什么?
最后按以下顺序排序:
/**
* Custom rewrite rules
*/
function my_rewrite_rules() {
add_rewrite_rule( '^([^/]*)/([^/]*)/([^/]*)?', 'index.php?post_type=room&room=$matches[3]', 'top' );
add_rewrite_rule( '^([^/]*)/([^/]*)?', 'index.php?post_type=house_type&house_type=$matches[2]', 'top' );
add_rewrite_rule( '^([^/]*)/?', 'index.php?post_type=development&development=$matches[1]', 'top' );
}
add_action( 'init', 'my_rewrite_rules' );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.