我有一个自定义的帖子类型“profile”。每个配置文件可以是且只能是学生、员工或校友中的一个,这是通过“profile\\u type”自定义分类法设置的。这给了我永久的印象:
www.mysite.com/profile/arthur-mcmillan.
我想要的是:
www.mysite.com/student/arthur-mcmillan
实际上,我已经使用以下技术使其工作,但它会打断我的所有其他页面和帖子,返回一个未找到的页面。
在注册表配置文件中自定义帖子类型:
\'rewrite\' => array(\'slug\' => \'%profile_types%\', \'with_front\' => false)
我用这个函数过滤它:
function filter_post_type_link($link, $post)
{
if ($post->post_type != \'profile\'){
return $link;
}
if ($cats = get_the_terms($post->ID, \'profile_types\')){
$link = str_replace(\'%profile_types%\', array_pop($cats)->slug, $link);
}
return $link;
}
add_filter(\'post_type_link\', \'filter_post_type_link\', 10, 2);
这样做是可行的,但会破坏其他普通页面和帖子。有没有人知道修复帖子和页面的方法,或者有没有更好的方法来更改永久链接?
谢谢
SO网友:Preetom Banerjee
Use Category base and Tag base Permalink
类别库和标记库是URL中用于类别和标记存档的前缀,如下所示:
example.net/wp/category_base/category_name
example.net/wp/tag_base/tag_name
默认值为“类别”和“标记”。您可以更改它们,但不能完全从URL中删除它们。
自定义permalinks在大多数系统上都可以正常工作,但仍然存在一些出现问题的情况。
将%category%与帖子上的多个类别一起使用将多个类别分配给帖子时,永久链接中只能显示一个类别。类别按字母顺序排列。在每组子类别中,顺序也将按字母顺序排列。(请参见管理类别)。这篇文章仍然可以通过所有类别正常访问
例如www.mysite。com/学生/亚瑟·麦克米兰。转到设置并将永久链接更改为自定义结构
2。使用/%category%/%postname%/
3。添加类别名称作为学生
您可以轻松更改类别名称并更新类别,只需转到“发布”>“类别”选择以前的类别编辑其名称并更新即可。
这就是全部。