Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.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
Php 如何在wordpress上用url显示页面和帖子?_Php_Wordpress - Fatal编程技术网

Php 如何在wordpress上用url显示页面和帖子?

Php 如何在wordpress上用url显示页面和帖子?,php,wordpress,Php,Wordpress,您好,我一直在学习wordpress,到目前为止,我知道wordpress中的帖子和页面基本上是如何工作的。但我一直在琢磨wordpress是如何为特定的url找到特定的页面或帖子的 比如,;如果我有一个名为helloworld的页面,那么wordpress如何将其显示为localhost/wordpress/helloworld。页面的情况也是如此。我想知道它到底是怎么工作的 首先,我认为可以通过.htaccess文件来完成,方法是更改url,或者简单地重命名或删除url的某些部分,如loca

您好,我一直在学习wordpress,到目前为止,我知道wordpress中的帖子和页面基本上是如何工作的。但我一直在琢磨wordpress是如何为特定的url找到特定的页面或帖子的

比如,;如果我有一个名为
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设置下更改结构。