WordPress permalink系统是如何工作的?
我是一名php开发人员,目前正在开发一个CMS/博客系统。我想添加一个永久链接系统,比如WordPress。我很好奇WordPress是如何解析permalink的。例如,如何从以下位置获取WordPress permalink系统是如何工作的?,wordpress,url,content-management-system,blogs,permalinks,Wordpress,Url,Content Management System,Blogs,Permalinks,我是一名php开发人员,目前正在开发一个CMS/博客系统。我想添加一个永久链接系统,比如WordPress。我很好奇WordPress是如何解析permalink的。例如,如何从以下位置获取id和post name等数据: example.com/id/123/post/example/ 简而言之,我想要一个系统从url获取id和post name。我希望使用户能够使用以下标记更改permalink结构,如WordPress: id/%postid%/post/%postname%/ 如何获
id
和post name
等数据:
example.com/id/123/post/example/
简而言之,我想要一个系统从url获取id
和post name
。我希望使用户能够使用以下标记更改permalink结构,如WordPress:
id/%postid%/post/%postname%/
如何获取变量中的数据,如$id
和$post\u name
,其中的值将123
和示例
?请帮帮我。
提前感谢。这取决于您使用的服务器软件,但如果您计划在Apache上使用脚本,通常需要使用名为
mod_rewrite
的东西,特别是.htaccess
文件
我建议先读一本关于这个主题的教程 常用的apache模块mod_rewrite可以帮助您解决这个问题。您要做的是在.htaccess文件中编写重写规则,并通过重写,将通常类似于文件系统的奇特结构作为$\u get参数发送到PHP文件 例如,如果您想将如下内容替换为:
?reactor=13
,/reactor/13/
在.htaccess文件中写入此重写规则:
RewriteEngine on
RewriteRule reactor/([0-9]+)/$ index.php?id=$1
现在,如果不使用index.php,而是使用/reactor/13/,则index.php文件应该在$\u GET中看到:
Array
(
[id] => 13
)
现在,对于您的HTML代码,您可以自行设计URL并遵守您的构思结构
这些重写规则可能令人困惑,但它们遵循逻辑正则表达式模式
WordPress采取了比插入这些编辑.htaccess文件更强的方法,它们将所有内容发送到WP,然后WP通过内部规则解决/路由其余部分。它在WP源中的何处处理链接?我相信你是对的(创建的mod_重写规则非常简单/通用),但如果我能看到这应该发生在哪里,它将帮助我诊断我遇到的一个奇怪问题。WP实际上太复杂或抽象,无法指向一个地方。您可以通过查看