我有一个自定义的帖子类型(我们称之为“视频”)和一个自定义的分类法(我们称之为“节”),我希望这两个都出现在帖子URL中。帖子URL重写工作正常。然而,无论我做什么,post类型的归档文件都是404。
有人知道怎么解决这个问题吗?
register_post_type(\'video\', array(
// ..
\'has_archive\' => true,
\'rewrite\' => array(
\'slug\' => "/%section%/video/",
),
// ...
));
// this works
add_filter(\'post_type_link\', \'my_post_link\', 1, 3);
function my_post_link($link, $id = 0)
{
$post = get_post($id);
$section = \'all\';
if (is_object($post)){
if($terms = wp_get_object_terms($post->ID, \'section\')){
$section = $terms[0]->slug;
}
}
$link = str_replace(\'%section%\', $section, $link);
return $link;
}
// this does not work
add_filter(\'post_type_archive_link\', \'my_post_archive_link\', 1, 3);
function my_post_archive_link($link, $id = 0)
{
$link = str_replace(\'%section%\', \'all\', $link);
return $link;
}
最合适的回答,由SO网友:TheDeadMedic 整理而成
由于您在slug中使用了重写标记(动态值),因此归档URL没有“真正”的重写基础。而不是true
, 将其设置为videos
&;重新保存永久链接:
\'has_archive\' => \'videos\',
。。。应该为您提供一个post类型存档
example.com/videos/