404 for a custom taxonomy?

时间:2018-08-20 作者:Run

为什么我的自定义分类法会得到404?

add_action(\'init\', \'custom_taxonomy_flush_rewrite\');
function custom_taxonomy_flush_rewrite() {
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
}

add_action(\'init\', \'create_publication_categories\');
function create_publication_categories() {
    $args = array(
        \'label\' => __(\'Categories\'),
        \'has_archive\' =>  true,
        \'hierarchical\' => true,
        \'rewrite\' => array(
            \'slug\' => \'topics\',
            \'with_front\' => false
        ),
    );
    $postTypes = array(
        \'publication\'
    );
    $taxonomy = \'publication\';
    register_taxonomy($taxonomy, $postTypes, $args);
}
所以我有一个模板叫做taxonomy-publication.php, 但我还是拿到了404。

我已重置永久链接如下this. 以及其他答案,如thisthis.

但我还是拿到了404。你知道我错过了什么吗?

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

你用的是同样的子弹publication 用于自定义分类法和自定义帖子类型。Slug应该是unique.

另一件事(与404无关)是flush_rules. 正如你所看到的here 冲洗在init 胡克是个坏主意。

Important:

刷新重写规则是一项昂贵的操作,有教程和示例建议在initThis is bad practice. 它应该在“shutdown”挂钩上执行,或者在插件/主题(de)激活时执行activation 或deactivation, 因为在多站点上它们是无用的),或者当您知道需要更改重写规则时。Don\'t do it on any hook that will triggered on a routine basis. 更多详细信息,请参阅WP Engineer的帖子评论:自定义帖子类型和Permalink确保自定义帖子类型和分类是properly registered before 刷新重写规则,尤其是在插件激活期间:WordPress插件开发人员的激活检查表(无法访问)Example

主题激活刷新规则:

add_action( \'after_switch_theme\', \'custom_taxonomy_flush_rewrite\' );
function custom_taxonomy_flush_rewrite() {
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
}

结束

相关推荐

Custom templates vs page-slug

我目前一直在使用slug来设置页面模板,使用普通的层次结构例如,如果我想更改的页面模板http://www.example.com/about-us, 我会编辑关于我们的页面。php如果客户端要去更改页面slug,它将不再加载正确的模板。在WordPress后端使用“自定义模板”下拉列表是否更好?就这一点而言,最佳做法是什么?非常感谢