[英]URL rewriting in wordpress not using htaccess
我正在尝试在 wordpress 中重写 URL。
结构是/car/123/bmw-series-A
其中 pagename 是car
, carID 是123
并且 modelName 是bmw-series-A
有一个自定义模板,我将在其中获取 carID 和 modelName
我有以下代码
函数.php
function add_rewrite_rules($aRules) {
$aNewRules = array('car/([^/]+)/?$' => 'index.php?pagename=car&carID=$matches[1]');
$aRules = $aNewRules + $aRules;
return $aRules;
}
// hook add_rewrite_rules function into rewrite_rules_array
add_filter('rewrite_rules_array', 'add_rewrite_rules');
function prefix_register_query_var( $vars ) {
$vars[] = 'carID';
$vars[] = 'modelName';
return $vars;
}
add_filter( 'query_vars', 'prefix_register_query_var' );
当我尝试添加 modelName 时,我在自定义模板中获得了 carID 而不是 modelName,它会转到 404 页面。
代码 -
$aNewRules = array('car/([^/]+)/([^/]+)/?$' => 'index.php?pagename=car&carID=$matches[1]&modelName=$matches[2]');
任何帮助都受到高度赞赏。 提前致谢。
您需要为两条路径制定规则...更新add_rewrite_rules
如下所示:
function add_rewrite_rules($aRules)
{
// id rule
$aNewRules = array('car/([^/]+)/?$' => 'index.php?pagename=car&carID=$matches[1]');
// model rule
$bNewRules = array('car/([\w+]*)/([\w+]*)/?$' => 'index.php?pagename=car&carID=$matches[1]&modelName=$matches[2]');
$aRules = $aNewRules + $bNewRules + $aRules;
return $aRules;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.