WordPress的最新更新允许开发人员非常快速地自定义其个人网站。 更新主题区域,替换侧边栏中的小部件,甚至编写自己的自定义PHP代码功能,都很简单。 范围巨大-流行的领域之一是重写漂亮的URL永久链接。
您可以使用几种方法来更新默认的WordPress重写系统。 在本教程中,我将分享一些示例,并演示该过程可以多么简单。 您需要对PHP有一定的了解,以遵循代码中的内容,但是将其复制并粘贴到自己的模板中是如此容易,实际上不需要进行任何工作。
了解WP_Rewrite
如果您完全熟悉Apache服务器上的mod_rewrite,那么您将了解WordPress重写语法。 他们的系统仍然建立在.htaccess文件之上,但是所有规则都用PHP编码。 实际上,由于我们对编写自己的URL有更多控制权,因此实际上使该过程更容易一些。
我建议略读$ wp_rewrite类页面,因为它包含大量有关该主题的信息。 我们甚至可以参考一些小示例,以使所有内容更易于理解。 大多数代码都可以直接写入主题的functions.php文件中。 让我们从查看WordPress已包含的默认重写开始。
$ wp_rewrite-> rules的内容
通过将$wp_rewrite
类声明为全局类,我们可以访问所有内部数据。 当您添加自己的规则时,这些规则将添加到名称$wp_rewrite->rules
的数组中。 记住此变量很重要,因为在开发过程中您可能需要多次引用数据。
<div><code>
<?php
global $wp_rewrite;
print_r($wp_rewrite->rules);
?>
</code></div>
我将此代码块添加到主题的page.php文件中。 它将输出一大堆看起来像是一团糟的数据。 但是,如果您在页面上查看源代码 ,实际上很容易看到哪些重写规则与哪个文件名匹配。 例如,让我们看一下类别重写的规则:
[category/(.+?)/?$] => index.php?category_name=$matches[1]
方括号左侧的位置是我们要查找的Apache RewriteRule。 从/ category /部分开始,后跟任意字符串。 如果匹配,则服务器将在结束替换变量时知道引用index.php?category_name=
。
设置自定义永久链接
仅$ wp_rewrite类中包含太多内容。 可以引用许多其他属性,例如$wp_rewrite->category_base
或$wp_rewrite->author_base
,以获取这些页面的默认URL结构。 但是除了拉动WP的默认设置外,我们还可以构建自己的规则。
重建作者库
当您进入“永久链接”设置页面时,可以选择重置类别和标签基础。 但是,奇怪的是缺少重置作者库的选项。
但是我们可以使用WordPress代码库中the add_rewrite_rule()
来集成一些新设置。 在这种情况下,我用/ writer /替换了/ author / ,但是您可以使用任何喜欢的库。 此外,我还为作者页面和RSS feed复制了其他一些重定向。 您可以将此代码块添加到主题的functions.php文件中。
add_action( 'init', 'add_author_rules' );
function add_author_rules() {
add_rewrite_