WordPress利用add_rewrite_rule()函数重写标签的路由地址 解决重写地址后的分页翻页问题

导语:叶子在为一位客户做开发的时候,需要用到WordPress的标签多重过滤功能,还要将动态地址重写为伪静态的地址,下面来看实现方法。WordPress的多重筛选WordPress提供原生态的多重筛选功能,实现方法如下面的链接。使用标签和分类的名称作为筛选条件http://domain.com/?tag=shangha...

导语:叶子在为一位客户做开发的时候,需要用到WordPress的标签多重过滤功能,还要将动态地址重写为伪静态的地址,下面来看实现方法。

WordPress的多重筛选

WordPress提供原生态的多重筛选功能,实现方法如下面的链接。

使用标签和分类的名称作为筛选条件

http://domain.com/?tag=shanghai,xian&category_name=accommodation,china-classic-tours

使用标签和分类的ID作为筛选条件

http://domain.com/?tag_id=4,6&cat=8,9

并集结果的筛选形式

以上的链接是进行了OR的操作,如果需要结果同时匹配多个条件进行AND的操作,请看下面的链接。

http://domain.com/?tag_id=4+6&cat=8+9

以上是叶子的一点心得,其他的请自行摸索。

重写路径

叶子需要将地址重写,原地址如下:

http://domain.com/?tag=shanghai,xian&category_name=accommodation

重写后的地址如下:

http://domain.com/destination/shanghai,xian/accommodation

实现代码:

利用add_rewrite_rule函数来添加地址规则,添加完成后,需要刷新规则。

function wpdocs_flush_rules() {$rules = get_option( 'rewrite_rules' );if ( ! isset( $rules['destination/([0-9a-zA-Z\-_,]+)/([0-9a-zA-Z\-_,]+)?$'] ) ) {global $wp_rewrite;$wp_rewrite->flush_rules();}if ( ! isset( $rules['destination/([0-9a-zA-Z\-_,]+)/([0-9a-zA-Z\-_,]+)/page/?([0-9]{1,})/?$'] ) ) {global $wp_rewrite;$wp_rewrite->flush_rules();}}add_action( 'wp_loaded','wpdocs_flush_rules' );function yct_add_rewrite_rules() {add_rewrite_rule('destination/([0-9a-zA-Z\-_,]+)/([0-9a-zA-Z\-_,]+)/page/?([0-9]{1,})/?$','index.php?tag=$matches[1]&category_name=$matches[2]&paged=$matches[3]','top');add_rewrite_rule('destination/([0-9a-zA-Z\-_,]+)/([0-9a-zA-Z\-_,]+)?$','index.php?tag=$matches[1]&category_name=$matches[2]','top');}add_filter('init', 'yct_add_rewrite_rules');

给TA打赏
共{{data.count}}人
人已打赏
wordpress教程

wordpress百度收录的技巧

2023-2-16 15:52:01

wordpress教程

WordPress如何绑定多个域名教程

2023-2-16 15:52:02

【腾讯云】11.11云上盛惠!云服务器首年1.8折起,买1年送3个月!
11.11云上盛惠!海量产品·轻松上云!云服务器首年1.8折起,买1年送3个月!超值优惠,性能稳定,让您的云端之旅更加畅享。
查看更多相关信息>>
站长

(工作日 10:00 - 22:30 为您服务)

2026-03-27 19:38:57

您好,无论是售前、售后、意见建议……均可通过联系工单与我们取得联系。

猜你想问:

  • 购买的模板免费包安装吗?

  • 这个演示地址有吗?

  • 购买vip会员可以下载哪些模板?

您的留言我们已经收到,我们将会尽快跟您联系!
取消
立即选择任一渠道联系我们