WordPress中如何移除URL的portfolio段并正常加载对应页面
移除WordPress URL中的portfolio路径段
1. 调整自定义文章类型(Portfolio Items)的重写规则
既然涉及portfolio items,它大概率是自定义文章类型。找到注册该类型的代码(一般在主题functions.php或自定义插件里),修改rewrite参数移除portfolio前缀:
$args = array( // 保留其他原有参数 'rewrite' => array( 'slug' => '', // 去掉portfolio路径段 'with_front' => false, // 避免继承默认的前置路径 'pages' => true, 'feeds' => true ) ); register_post_type('portfolio_item', $args);
2. 处理Portfolio Groups(自定义分类)的URL
如果portfolio groups是绑定到该文章类型的自定义分类,同样修改其注册参数:
$tax_args = array( // 保留其他原有参数 'rewrite' => array( 'slug' => '', // 移除portfolio前缀 'with_front' => false ) ); register_taxonomy('portfolio_group', 'portfolio_item', $tax_args);
3. 刷新固定链接规则
改完代码后必须刷新重写规则:
- 登录WordPress后台,进入「设置」→「固定链接」
- 直接点击「保存更改」,不用修改任何设置,让系统更新规则
4. 301重定向旧URL(可选但推荐)
为了避免旧URL返回404,给搜索引擎和用户更好的体验,添加301重定向:
function redirect_old_portfolio_urls() { if (preg_match('/^\/portfolio\/(.*)/', $_SERVER['REQUEST_URI'], $matches)) { wp_redirect(home_url('/' . $matches[1]), 301); exit; } } add_action('template_redirect', 'redirect_old_portfolio_urls');
注意:修改代码前务必备份相关文件,防止操作失误导致网站异常。
内容的提问来源于stack exchange,提问作者Mithun Deshan
相关产品推荐
相关产品推荐

