添加重写地址的规则

0
视频
0
完成
0%
进度
0
分钟
0
完成
0%
进度

在我们启用了友好链接功能以后, WordPress 会根据一些规则重写内容的地址 ... 也就是当请求的地址匹配某种特定的形式,就会使用相应的规则来重新设计内容的地址 ...

这些重写地址的规则都会存在数据库里 ... 我们可以安装一个叫 Rewrite Rules Inspector 的插件,它提供了一个界面,显示所有的重写规则 ...

下面我们可以来看一下 ... 打开 WordPress 的管理后台 ... 我们可以先去启用友好的链接 ... 点击 设置 ... 固定链接 ...

在常用设置这里,除了默认以外,可以随便选择一种形式的地址 ... 点击 保存更新 ..

这里我提前安装了 Rewrite Rules Inspector 插件 ... 在 工具 菜单里.... 找到 Rewrite Rules ... 这里会显示所有的地址重写规则 ...

我们可以参考这里的规则,然后去添加自己的地址重写规则 ...

先回到相关内容这个页面看一下 ... 我们可以设计一下这个页面的地址重写规则 ... 现在会很长 ... 电影内容的地址重写规则是 movie/加上内容的 id 。

我们把显示电影相关人物这种形式的地址 ... 设计成 movie/内容的id/people .. 这种结构的地址会更友好一些 ...

先复制一下这个地址 ... 然后打开当前主题的 functions.php ...

定义一下函数 .... function movietalk_rewrite_rules( $rules ) {} 函数里要加上一个参数 .... 然后我们要把设计的地址重写规则添加到这个 $rules 变量里 ... 再返回这个变量值

这样我们在把这个函数挂到 WordPress 的 rewrite_rules_array() 上面的时候,会把我们添加的规则添加到 WordPress 的重写规则里 ...

$rules[ '' ] = '';

等号左边是重写规则 ... 右边是重写规则所匹配的地址形式 ... 我们把刚才复制的地址粘贴到等于右边 ...

?pagename=related&related_content_id=5&related_type=people

在这个 ? 号前面加上一个 index.php ... 现在这个地址就是一个真实请求的地址 ... 然后我们要这个地址里可能会有变化的地址用占位符替换一下 ...

这个形式的地址里有两个地方可能会有变化 ... 一个是 related_content_id= 后面的值 ... 还有 related_type= 后面的值...

在 related_content_id= 后面输入一个 $matches[1] ... 表示匹配规则里的第一个可以匹配的地方... 然后在 related_type= 后面再输入 $matches[2] ... 表示这个地方去匹配规则里第二个可以匹配的地方 ..

在前面,我们可以再去定义重写规则 ....

地址的第一部分是 movie .. 然后输入一个 / 线 ... 后面写义一个可以匹配的部分 ... 把它放在一个 () 里 ... [0-9]{1,} ... 重写规则使用的是正则表示式 ... 刚才输入的这些意思是,地址的这个部分可能是0-9的数字 ... 而且可以是多位数 ...

这块就是规则里的第一个匹配的地方,也就是会去匹配 $matches[1]

再输入一个 / 线 ... 定义规则的第二个匹配的地方 ... ([^/]*)$ ... 表示这部分匹配任何东西,但不能是 / 线 ... 而且这是地址的最后一部分 ...

这个匹配规则的意思就是,比如当有人请求查看地址 movie/5/people 的时候, 其实打开的地址是

index.php?pagename=related&related_content_id=5&related_type=people ...

在下面我们需要返回 $rules 的值 ... return $rules;

然后我们要把它挂到 rewrite_rules_array 上 ...

add_filter( 'rewrite_rules_array', 'movietalk_rewrite_rules' );

保存 ... 回到 WordPress 的管理后台 ... 我们需要冲洗一下重写规则 ... 这样 WordPress 才能知道我们刚添加的规则 ...

你可以在固定链接的设置界面,点击两次 保存更改 ... 如果安装了 Rewrite Rules Inspector 插件 ... 在这个页面 ... 点击 Flush Rules ....

这样在这个重写规则的列表里 ... 你可以找到我们刚才添加的规则 ...

再回到前台页面 ... 现在这个地址就可以使用 movie/5/people 来代替了 ...

回车 ... 你会看到同样的页面 .... 我们可以再查看一下其它的页面 ... 输入 movie/x/people ... 打开的是 蝙蝠侠:黑暗骑士崛起 的相关人物页面 ...

添加重写地址的规则《 WordPress 内容关系 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点