首页 文章

WordPress自定义帖子类型更改为永久链接显示404

提问于
浏览
0

我创建了一个自定义帖子类型 post_event_type 并在注册时将重写设置为true .

在此帖子类型中, event_Category 的分类下有类别,其重写设置为true

然后,该URL将此帖子解析为URL / post_event_type / postname

在分类标准下有三类,如电影,舞蹈,音乐 .

我希望网址以URL / dance / postname的形式解析到页面,因此'dance'将成为分类法类别,帖子名称将是驻留在此类别下面的帖子

如果我将寄存器帖子类型重写更改为'events',他们将全部解析为URL / events / postname

然后我尝试了以下编码来尝试将它们分开 . 这些URL按照我的方式工作,然后他们转到404页面 .

add_filter('rewrite_rules_array', 'mmp_rewrite_rules');

function mmp_rewrite_rules($rules) {
$newRules  = array();
$newRules['events/(.+)/(.+)/(.+)/(.+)/?$'] = 'index.php?vc_guide_creator=$matches[4]'; 
$newRules['events/(.+)/?$']                = 'index.php?event_Category=$matches[1]'; 

return array_merge($newRules, $rules);
}

global $wp_rewrite;
$structure = '/%events%/';
$wp_rewrite->add_rewrite_tag("%events%", '([^/]+)', "post_event_type=");
$wp_rewrite->add_permastruct('post_event_type', $structure, false);

function filter_post_type_link($link, $post)
{
if ($post->post_type != 'post_event_type')
    return $link;

if ($cats = get_the_terms($post->ID, 'event_Category')){
    $link = str_replace('post_event_type', array_pop($cats)->slug, $link); 

}
return $link;
}
add_filter('post_type_link', 'filter_post_type_link', 10, 2);

有人可以帮忙吗?

1 回答

  • 1

    您是否尝试更新永久链接?

    转到设置 - >永久链接,然后单击底部的保存更改按钮而不更改任何设置,这将只更新永久链接表 .

相关问题