我有一个称为“设备”的自定义帖子类型。我希望permalink结构为:
example.com/equipment/%post_id%-slug
我特别希望它使用破折号而不是斜杠(即-“id slug”而不是“id/slug”)。我在google上找到的每一个可能的解决方案都使用了斜杠,我就是不能用破折号。
如果有两篇文章标题相同,我还想阻止WordPress添加额外的数字。示例:
example.com/equipment/45-awesomeness
and
example.com/equipment/46-awesomeness-2
我认为解决方法是使用add\\u rewrite\\u规则,但我对regex的东西有点困惑。
以下代码确实可以用slug中的id替换帖子名:
function equipment_links($post_link, $post = 0) {
if($post->post_type === \'equipment\') {
return home_url(\'equipment/\' . $post->ID . \'\');
}
else{
return $post_link;
}
}
add_filter(\'post_type_link\', \'equipment_links\', 1, 3);
function equipment_rewrites_init(){
add_rewrite_rule(\'equipment/([0-9]+)?$\', \'index.php?post_type=equipment&p=$matches[1]\', \'top\');
}
add_action(\'init\', \'equipment_rewrites_init\');
它确实返回了一个url“example.com/equipment/123”,但我想在“123”的末尾加上“-post\\u name”。