我只想创建一个url重写,它接受第三个参数并将其与相应的页面相匹配,而忽略其他两个参数。
domain.com/argument1/argument2/page-slug = \'index.php?page_id=XXX\';
是否可以通过页面的slug而不是ID来调用页面,或者我可以基于页面slug以某种方式生成ID?
更新时间:
实际上,我现在在这方面做得更进一步了:
add_filter(\'rewrite_rules_array\', \'mmp_rewrite_rules\');
function mmp_rewrite_rules($rules) {
$newRules = array();
$newRules[\'bus-tours/(.+)/(.+)/(.+)/?$\'] = \'index.php?bus-tours=$matches[3]\';
$newRules[\'(.+)/?$\'] = \'index.php?pagename=$matches[1]\';
//$newRules[\'bus-tours/(.+)/(.+)/?$\'] = \'index.php?pagename=$matches[2]\';
return array_merge($newRules, $rules);
}
这使我能够:
/bus-tours -> and it shows the bus-tours pages.
/bus-tours/California -> and it shows me the child page of bus-tours, which is Calfironia
/bus-tours/california/SanFran/Tourx -> and it shows me the CPT post for TourX
所以,现在还不错。Tho,因为我使用了很多CPT,所以我想修改第一条规则,这样“巴士旅行”就可以用一个变量代替。
$newRules[\'(.+)/(.+)/(.+)/(.+)/?$\'] = \'index.php?$matches[1]=$matches[3]\';
这行不通。有什么帮助吗?
谢谢,丹尼尔