帖子类型中的自定义URL使其无法查看存档

时间:2015-11-27 作者:Matt

我有一个自定义的帖子类型(我们称之为“视频”)和一个自定义的分类法(我们称之为“节”),我希望这两个都出现在帖子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;  
}

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

由于您在slug中使用了重写标记(动态值),因此归档URL没有“真正”的重写基础。而不是true, 将其设置为videos &;重新保存永久链接:

\'has_archive\' => \'videos\',
。。。应该为您提供一个post类型存档example.com/videos/

相关推荐