WordPress基础教程

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

发布时间:2018-05-27 1:49:13

本文作者:

导语:叶子在为一位客户做开发的时候,需要用到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');
小兽wordpress凭借多年的wordpress企业主题制作经验,坚持以“为用户而生的wordpress主题”为宗旨,累计为2000多家客户提供品质wordpress建站服务,得到了客户的一致好评。我们一直用心对待每一个客户,我们坚信:“善待客户,将会成为终身客户”。小兽wordpress能坚持多年,是因为我们一直诚信。我们明码标价(wordpress做网站需要多少钱),从不忽悠任何客户,我们的报价宗旨:“拒绝暴利,只保留合理的利润”。如果您有网站建设、网站改版、网站维护等方面的需求,请立即咨询右侧在线客服或拨打咨询热线:18907337671,我们会详细为你一一解答你心中的疑难。

相关文章

写给所有做网站的朋友的一封信

写给所有做网站的朋友的一封信

现在就开始执行“1+N”互联网推广和没有开始执行的人,一两天看不出任何区别; 一两个月看来差异也是微乎其微的;但在2-5年的长远时间来看的时候,你的高质量询盘不断增加,你的互联网资产已经建立完成,对手已经很难匹敌,现在你看到这段文字的时候就是最好的开始,现在就是最好的时候,马上开始“1+N”体系的整体互联网推广吧,我们和你一起,开创互联网大未来!

点击查看详情

准备开启WordPress网站建设推广?

我们相信高端漂亮的网站不应该是昂贵的,这就是wordpress对每个人都是免费的原因
wordpress建站免费入门,并提供价格合理的wordpress建站套餐。