WordPress中涉及页面插件的自定义URL

时间:2014-12-20 作者:rashid

我有一个叫“汽车”的页面,上面有slugcars. 页面是否可以在此URL正常工作http://example.com/cars/http://example.com/cars/audi/ 可以用来显示一些特殊内容,这些内容不是子页面,而是来自自定义php文件。

我可以这样添加URL重写规则吗add_rewrite_rule(\'^cars/([^/]+)/?\',\'index.php?make=$matches[1]\',\'top\');

我正在尝试,但它在重定向循环中不起作用,看起来WordPress正在尝试查找子页面,可能是,我可能错了。

1 个回复
最合适的回答,由SO网友:rashid 整理而成

这段代码确实有效,重定向的原因是其他插件。

要动态创建尽可能多的子页面,只需将其挂接到\'init\'钩子。

add_action(\'init\',\'my_custom_rewrite_rules\' );

function my_custom_rewrite_rules(){
    add_rewrite_tag( \'%make%\', \'([^/]+)\' );
    add_rewrite_rule(\'^cars/([^/]+)/?\',\'index.php?make=$matches[1]\',\'top\');
   //or To go to a published page.
    add_rewrite_rule(\'^cars/([^/]+)/?\',\'index.php?pagename=page-slug&make=$matches[1]\',\'top\');
}
如果要使用自定义文件,请执行以下操作

add_action( \'template_redirect\', \'myown_cars_display\' );    

function myown_cars_display($template) {
    if ( $make = get_query_var(\'make\') ){
        include(\'templates/cars-make.php\' );
        exit;
    }
}
别忘了刷新重写规则,只需在“设置”中打开永久链接页面,就完成了。

结束

相关推荐