WordPress带后缀波浪线URL匹配规则调整及代码插入位置咨询
WordPress带波浪线后缀URL匹配代码的放置位置
嘿,我来给你梳理清楚这个问题——在WordPress里实现带波浪线后缀的URL(比如example.com/postname~)不匹配普通postname链接的规则,代码可以放在这几个地方,各有优劣,你可以根据自己的需求选择:
1. 主题的functions.php文件(子主题优先)
这是最常用的自定义功能放置位置,你可以直接打开当前激活主题的functions.php文件。重点提醒:如果你用的是子主题,一定要把代码放在子主题的functions.php里,不然主题更新后你的代码会直接丢失。
这种方式的好处是操作简单,不用额外创建文件;但缺点也很明显——如果你之后更换主题,这段重写规则就会失效,所以适合只在当前主题下使用的功能。
2. 自定义独立插件
这是更稳妥、更推荐的长期方案,完全不受主题更换或更新的影响。具体操作很简单:
- 登录你的服务器,找到
wp-content/plugins/目录,新建一个比如custom-tilde-rewrites.php的文件 - 在文件开头加上插件的基础标识注释(WordPress会识别这个文件为插件):
<?php /* Plugin Name: Custom Tilde URL Rewrites Description: Adds rewrite rules to distinguish tilde-suffixed URLs from regular postnames Version: 1.0 Author: Your Name */ - 把你的重写规则代码放在这段注释后面
- 回到WordPress后台的“插件”页面,找到这个新建的插件并启用它
这种方式的优势是功能独立,不管你换什么主题,规则都会一直生效,非常适合需要长期保留的自定义功能。
绝对不要碰核心文件
千万不要把代码放到wp-includes/或者wp-admin/这类WordPress核心目录的文件里!每次WordPress版本更新,这些核心文件都会被完全覆盖,你的代码会直接丢失,甚至可能破坏整个站点的稳定性。
额外提示
不管你选择哪种放置方式,代码都需要通过init钩子来触发,比如你可以用这样的示例代码:
function custom_tilde_rewrite_setup() { // 更新重写标签,匹配带波浪线的postname add_rewrite_tag('%postname_tilde%', '([^/]+~)'); // 添加优先级最高的重写规则 add_rewrite_rule('^([^/]+~)/?', 'index.php?postname_tilde=$matches[1]', 'top'); } add_action('init', 'custom_tilde_rewrite_setup');
写完代码后,记得去WordPress后台的「设置-固定链接」页面,随便点一下“保存更改”,刷新WordPress的重写规则,这样新的规则才会生效。
内容的提问来源于stack exchange,提问作者Michael S. Howard
相关产品推荐
相关产品推荐

