如何在WordPress中进行URL重写(rewrite)

文 / @UTHEME

在WordPress中进行URL重写(rewrite)通常是通过使用add_rewrite_rule()函数和add_rewrite_tag()函数来实现的。以下是一些简单的步骤,用于设置WordPress URL重写规则:

  1. 在你的主题或插件的functions.php文件中,将以下代码添加到一个函数中:
php
function custom_rewrite_rules() {
// 添加自定义重写标签
add_rewrite_tag('%custom_var%', '([^&]+)');

// 添加自定义重写规则
add_rewrite_rule(
'^custom-path/([^/]*)/?', // 自定义URL路径和参数匹配规则
'index.php?custom_var=$matches[1]', // WordPress内部查询变量映射
'top' // 设置优先级为top,以便在其他规则之前应用此规则
);
}
add_action('init', 'custom_rewrite_rules');

上述代码示例向WordPress添加了一个URL重写规则,它将类似于/custom-path/your-value的URL映射到一个名为custom_var的查询变量。在此示例中,your-value可以是任何你想要捕获的值。

  1. 刷新重写规则: 当你添加或修改重写规则时,需要刷新WordPress的重写规则。你可以通过访问WordPress后台的“设置”>“永久链接”页面来实现。只需打开页面,然后单击“保存更改”按钮即可。
  2. 使用重写变量: 现在,你可以在WordPress中使用这个新的查询变量。例如,可以在主题模板文件中使用get_query_var()函数获取变量的值:
php
$custom_var_value = get_query_var('custom_var');

或者,你可以在pre_get_posts操作中修改查询以根据自定义查询变量值过滤或排序内容:

php
function custom_query_modifications($query) {
if (!is_admin() && $query->is_main_query() && get_query_var('custom_var')) {
// 根据custom_var的值修改查询
$query->set('orderby', 'title');
$query->set('order', 'ASC');
}
}
add_action('pre_get_posts', 'custom_query_modifications');

通过这种方式,你可以为WordPress添加自定义URL重写规则,使你的URL更具可读性和SEO友好性。在实际应用中,你需要根据实际需求修改示例代码以满足自己的需求。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。