繁体   English   中英

Wordpress中的自定义URL结构

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM