我有一个现有的网站,它有一个没有存档的自定义帖子类型。现在它已经活了将近一年了。我正在尝试将自定义帖子类型更改为现在有存档。
因此,我将has\\u archive更改为“true”,转到“设置”>“永久链接”,并将其保存以刷新重写规则,但当我转到存档(example.com/recipes/)时,它仍然是一个404页。
没有活动的缓存插件。
类型插件用于创建CPT。
配方CPT也有一些自定义重写规则,但我认为这只会影响单个帖子,而不会影响帖子存档:
function custom_rewrite_rules() {
add_rewrite_rule(\'^recipes/([^/]*)/([^/]*)/?$\' ,\'index.php?recipes=$matches[2]\',\'top\');
}
add_action(\'init\', \'custom_rewrite_rules\');
function custom_links($permalink, $post_id, $leavename) {
$post = get_post($post_id);
if ($post->post_type == \'recipes\') {
$cats = wp_get_object_terms($post->ID, \'recipe-category\');
if ($cats) {
$tax_rec_cat = $cats[0]->slug;
} else {
$tax_rec_cat = \'all\';
}
$permalink = str_replace(\'%tax_rec_cat%\', $tax_rec_cat, $permalink);
}
return $permalink;
}
add_action(\'post_type_link\', \'custom_links\', 10, 3);
同样,我在查看菜谱分类归档(example.com/recipes/appetizers/)或单个菜谱帖子(example.com/recipes/appetizers/hummus/)时没有任何问题,只是查看主帖子归档(example.com/recipes/)。
是否有一个地方可以禁用我没有查看的页面或发布存档?
最合适的回答,由SO网友:isabisa 整理而成
因此,注册CPT时,register\\u post\\u type中的“rewrite”参数中使用了以下内容:
rewrite => "recipes/%tax_rec_cat%"
我不知道这是什么意思,我想写这篇文章的人都认为有必要同时包含这一点和我在原始问题中发布的custom\\u links函数,以便在permalink中包含分类术语。
为了解决归档文件出现404错误的问题,我将“重写”更改为true,并删除了自定义格式。我一刷新重写规则,CPT归档、分类法归档和单次发布都可以正常加载。