如何让WordPress自定义文章类型的基础Permalink跳转到指定页面
解决自定义文章类型基础URL跳转问题
方法1:通过模板跳转实现需求
直接在主题的functions.php文件里添加以下代码,拦截/event的归档请求并跳转:
function redirect_event_archive() { // 检测是否是Event自定义文章类型的归档页,且不是分页 if (is_post_type_archive('event') && !is_paged()) { // 尝试获取名为Event的页面 $target_page = get_page_by_path('event'); if ($target_page) { // 301永久跳转到目标页面 wp_redirect(get_permalink($target_page), 301); } else { // 找不到目标页面就跳转到首页 wp_redirect(home_url(), 301); } exit; } } add_action('template_redirect', 'redirect_event_archive');
添加完成后,去后台设置→固定链接页面直接点击保存,让规则生效。
方法2:禁用默认归档+手动重定向
先禁用自定义文章类型的默认归档页面,避免/event触发默认列表:
function adjust_event_post_type_settings($args, $post_type) { if ($post_type === 'event') { $args['has_archive'] = false; } return $args; } add_filter('register_post_type_args', 'adjust_event_post_type_settings', 10, 2);
保存修改后同样要刷新固定链接设置。此时访问/event会返回404,你可以用WordPress的重定向插件(比如Redirection)手动添加规则:将/event重定向到目标页面或首页。
方法3:自定义归档模板实现跳转
在当前主题根目录创建archive-event.php文件,写入以下内容:
<?php $target_page = get_page_by_path('event'); if ($target_page) { wp_redirect(get_permalink($target_page), 301); } else { wp_redirect(home_url(), 301); } exit;
WordPress会自动用这个模板处理/event的请求,直接完成跳转。
内容的提问来源于stack exchange,提问作者jeromio
相关产品推荐
相关产品推荐

