如何为WordPress静态页面添加URL前缀Slug?
给WordPress静态页面添加前缀Slug的几种方法
嘿,这个需求很常见!要把你的http://example.com/trade页面改成http://example.com/tender/trade,有几个实用的方案,你可以根据自己的情况选:
方法一:直接修改页面固定链接(最简单)
这是最直接的操作,适合只改单个页面的情况:
- 登录WordPress后台,进入「页面」列表,找到你那个名为Trade的静态页面并打开编辑
- 在页面编辑界面右侧的「文档」面板里,找到「固定链接」模块,点击「编辑」按钮
- 把原来的
trade替换成tender/trade,然后点击「确定」 - 最后点击页面顶部的「更新」按钮保存修改
- 小提示:如果旧地址
http://example.com/trade还有人访问,一定要设置301永久重定向,避免404错误,还能保留搜索引擎权重。
方法二:通过父页面实现前缀(适合批量管理)
如果你以后可能还有其他页面要放在tender/前缀下,用父页面的方式更规整:
- 先创建一个空白页面,标题设为「Tender」,固定链接的slug设置为
tender,然后发布 - 回到你的Trade页面,在右侧「文档」面板的「父级」下拉菜单里,选择刚才创建的「Tender」页面
- 保存页面后,Trade页面的固定链接就会自动变成
tender/trade - 这种方式的好处是,所有归到Tender下的子页面都会自动带上
tender/前缀,方便统一管理。
方法三:用代码自定义(适合开发者或不想用插件的场景)
如果不想依赖插件,或者需要更灵活的逻辑,可以在主题的functions.php文件(或者自定义插件)里添加代码:
修改页面slug的代码
function custom_add_tender_prefix( $post_link, $post ) { // 只针对slug为trade的页面修改链接 if ( 'page' === $post->post_type && 'trade' === $post->post_name ) { $post_link = str_replace( '/trade/', '/tender/trade/', $post_link ); } return $post_link; } add_filter( 'post_type_link', 'custom_add_tender_prefix', 10, 2 );
添加完代码后,记得去后台「设置」→「固定链接」页面,随便选择一个选项点击「保存更改」,刷新固定链接规则让代码生效。
旧地址重定向代码(可选)
如果需要把旧地址/trade/重定向到新地址,再加这段代码:
function redirect_old_trade_url() { if ( $_SERVER['REQUEST_URI'] === '/trade/' ) { wp_redirect( home_url( '/tender/trade/' ), 301 ); exit; } } add_action( 'template_redirect', 'redirect_old_trade_url' );
注意事项
- 修改slug后,记得检查页面内部的链接、导航菜单里的地址,有没有指向旧地址的,及时更新
- 301重定向是必须的,不管用插件还是代码,都要确保旧地址能跳转到新地址
- 如果用插件管理重定向,推荐Redirection或者Permalink Manager,操作更直观
内容的提问来源于stack exchange,提问作者Denis Brezhitskiy
相关产品推荐
相关产品推荐

