Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WordPress permalink系统是如何工作的?_Wordpress_Url_Content Management System_Blogs_Permalinks - Fatal编程技术网

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%/ 如何获

我是一名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\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实际上太复杂或抽象,无法指向一个地方。您可以通过查看