Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WordPress内部URL路由/重写API_Php_Wordpress_Url Rewriting_Routes - Fatal编程技术网

Php WordPress内部URL路由/重写API

Php WordPress内部URL路由/重写API,php,wordpress,url-rewriting,routes,Php,Wordpress,Url Rewriting,Routes,我有一个自定义帖子类型的WordPress主题。我的URL结构是/%category%/%postname%(必须保持这种状态) 我也有一个自定义的职位类型“汽车”和一个类别“汽车”。当我进入domain.com/cars时,WordPress将路由到archive.php模板文件(这是正确的默认行为) 我想要的是,这个URL指向一个页面的漂亮URL(该页面将有一个自定义模板),该页面具有Permalink domain.com/cars(丑陋的URL将是domain.com/index.php

我有一个自定义帖子类型的WordPress主题。我的URL结构是/%category%/%postname%(必须保持这种状态)

我也有一个自定义的职位类型“汽车”和一个类别“汽车”。当我进入domain.com/cars时,WordPress将路由到archive.php模板文件(这是正确的默认行为)

我想要的是,这个URL指向一个页面的漂亮URL(该页面将有一个自定义模板),该页面具有Permalink domain.com/cars(丑陋的URL将是domain.com/index.php?pagename=cars)

我试过这个:

add_action( 'init', 'add_rewrite_rules' );  
function add_rewrite_rules() {   
    add_rewrite_rule(  
        'cars/([^/]+)/?$',  
        'index.php?pagename=$matches[1]',  
        'top');
}  
我还刷新了重写规则,但它不起作用(什么也没发生)。有什么想法吗?

我找到了这个解决方案(针对functions.php):

第一行匹配cars/mustang等URL,第二行将/cars指向名为cars的页面

add_rewrite_rule('^cars/([^/]*)/?','cars/$matches[1]','top');
add_rewrite_rule('^cars$','index.php?pagename=cars','top');

不要忘记刷新设置->永久链接中的重写规则,WordPress会自动为您的自定义帖子类型创建永久链接。所以domain.com/%category%/%postname%/不起作用?或者您正在尝试创建一个新的永久链接来显示所有和特定的“汽车”?domain.com/%category%/%postname%/工作正常,domain.com/%custompostnype%/postname工作正常。问题:我想将domain.com/cars路由到一个页面,而不是存档。