Php 如何在wordpress上用url显示页面和帖子?
您好,我一直在学习wordpress,到目前为止,我知道wordpress中的帖子和页面基本上是如何工作的。但我一直在琢磨wordpress是如何为特定的url找到特定的页面或帖子的 比如,;如果我有一个名为Php 如何在wordpress上用url显示页面和帖子?,php,wordpress,Php,Wordpress,您好,我一直在学习wordpress,到目前为止,我知道wordpress中的帖子和页面基本上是如何工作的。但我一直在琢磨wordpress是如何为特定的url找到特定的页面或帖子的 比如,;如果我有一个名为helloworld的页面,那么wordpress如何将其显示为localhost/wordpress/helloworld。页面的情况也是如此。我想知道它到底是怎么工作的 首先,我认为可以通过.htaccess文件来完成,方法是更改url,或者简单地重命名或删除url的某些部分,如loca
helloworld
的页面,那么wordpress如何将其显示为localhost/wordpress/helloworld
。页面的情况也是如此。我想知道它到底是怎么工作的
首先,我认为可以通过.htaccess
文件来完成,方法是更改url,或者简单地重命名或删除url的某些部分,如localhost/wordpress/?page\u name=hello world
到localhost/wordpress/hello world
。但我在wordpress.htaccess文件中找不到它
帮我解决这个问题 htaccess规则
RewriteRule . /index.php [L]
表示与文档树中的文件名不匹配的URL将调用index.php。php最终将调用WP::parse_request()。此函数将解析URL并生成数据库查询,以查找与URL对应的帖子或页面。这是一个相当复杂的算法。parse_request()将尝试根据URL自身的重写规则匹配URL。如果找到匹配项,它将创建数据库查询以获取匹配的文章或页面。parse_request()在文件中…/wp includes/class-wp.php-您可以自己阅读,但并不容易-我理解过一次,但忘记了细节
附录
我读了代码,又把它弄明白了。没那么难。WordPress在wp_选项表中有一个重写规则数据库,选项名为“重写规则”。重写规则如下所示:
[(.?.+?)(?:/([0-9]+))?/?$] => index.php?pagename=$matches[1]&page=$matches[2]
它将正则表达式映射到URL模板。此特定规则适用于页面(在我的网站上,其他网站可能有不同的规则)
URL将此规则与匹配数组匹配:
$matches=Array
(
[0] => tablepress-test
[1] => tablepress-test
)
parse_request()使用URL模板将URL重写为:
index.php?pagename=tablepress-test&page=
parse_request()然后使用以下内容创建数据库查询:
[query_vars] => Array
(
[page] =>
[pagename] => tablepress-test
)
.htaccess规则
RewriteRule . /index.php [L]
表示与文档树中的文件名不匹配的URL将调用index.php。php最终将调用WP::parse_request()。此函数将解析URL并生成数据库查询,以查找与URL对应的帖子或页面。这是一个相当复杂的算法。parse_request()将尝试根据URL自身的重写规则匹配URL。如果找到匹配项,它将创建数据库查询以获取匹配的文章或页面。parse_request()在文件中…/wp includes/class-wp.php-您可以自己阅读,但并不容易-我理解过一次,但忘记了细节
附录
我读了代码,又把它弄明白了。没那么难。WordPress在wp_选项表中有一个重写规则数据库,选项名为“重写规则”。重写规则如下所示:
[(.?.+?)(?:/([0-9]+))?/?$] => index.php?pagename=$matches[1]&page=$matches[2]
它将正则表达式映射到URL模板。此特定规则适用于页面(在我的网站上,其他网站可能有不同的规则)
URL将此规则与匹配数组匹配:
$matches=Array
(
[0] => tablepress-test
[1] => tablepress-test
)
parse_request()使用URL模板将URL重写为:
index.php?pagename=tablepress-test&page=
parse_request()然后使用以下内容创建数据库查询:
[query_vars] => Array
(
[page] =>
[pagename] => tablepress-test
)
post URL和GUID都可以在数据库中找到。在wp_posts表中,可以在管理面板的permalinks设置下更改结构。post URL和GUID都可以在数据库中找到。在wp_posts表中,可以在管理面板的permalinks设置下更改结构。