WordPress就像其他CMS一样,依赖于根据用户的请求生成内容,然后将其作为HTML页面输出到浏览器。你问的问题可能有很长的答案,但这里有一个简单的解释。
我们从名为.htaccess
, 这是一个服务器文件。这就是.htaccess
文件(由WordPress在激活pretty permalinks时生成):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
代码只是告诉服务器:
如果请求的URL不是文件或目录,请将请求发送到index.php
, WordPress被告知加载和查看内容的位置。
当您尝试访问帖子内容时,例如通过访问http://example.com/my-category/my-first-post
, WordPress会检查URL并注意到您试图访问单个帖子的内容。然后,它将尝试为该特定页面生成内容。
WordPress中的每一页都有自己的模板,就像一张空白表单,里面会填入数据。例如,单个帖子的模板文件称为single.php
并位于模板目录的根目录中。因此,当您尝试访问帖子时,模板部分中的代码将运行。
要更好地了解模板层次结构,请查看下图:
那么,我们如何定位这些页面?第一种方法是找到合适的模板文件并直接编辑它。不建议这样做,因为模板文件将来可能会被更新覆盖。
另一种方法是找到合适的hook
改变我们需要改变的东西。例如,如果您想更改WordPress的标题,可以挂接到wp_title
挂钩:
add_filter( \'wp_title\', \'my_wp_title\', 10, 2 );
function my_wp_title(){
return \'Hello!\';
}
这会将WordPress的标题设置为
Hello!
. 正如我提到的,你的问题很广泛,答案可能很长。如果你确切地说明你的问题,我可以发布一个更准确的答案。
我希望这有助于您理解WordPress(或任何其他CMS)如何呈现其内容。