如何为WordPress自定义文章类型设置URL重写规则
我们都知道wodpress后台”固定连接”页可给普通文章设置URL重写规则,但是如果是自己添加的自定义文章类型就无法设置重写规则了。很多人都有重写这个URL规则的需求,自定义文章类型默认的URL重写规则是可以通过代码来重写成你需要的样式的。实现原理就是利用wordpress内置的add_rewrite_rule函数来进行重定向改写URL规则。具体实现方式如下代码:
WordPress自定义文章类型设置URL重写规则方法
1、以下是带.html后缀的自定义文章类型URL重写规则:
/* 自定义文章类型固定链接结构为domain.com/book/id.html 代码来源: www.wpzxbj.com */ add_filter('post_type_link', 'custom_book_link', 1, 3); function custom_book_link( $link, $post = 0 ){ if ( $post->post_type == 'book' ){ return home_url( 'book/' . $post->ID .'.html' ); //带.html后缀 } else { return $link; } } add_action( 'init', 'custom_book_rewrites_init' ); function custom_book_rewrites_init(){ add_rewrite_rule( 'book/([0-9]+)?.html$', //带.html后缀 'index.php?post_type=book&p=$matches[1]', 'top' ); }
代码说明:以上代码以自定义文章类型”book”为例,你可将以上代码中的book替换为你自己的自定义文章类型名称。并将以上代码插入你主题的function.php保存。注意:保存后需到后台”固定连接”页面点击”保存更改”以更新.htaccess文件,这样重写规则才能真正生效。
2、不带.html后缀的自定义文章类型URL重写规则:
/* 自定义文章类型固定链接结构为domain.com/book/id/ 代码来源: www.wpzxbj.com */ add_filter('post_type_link', 'custom_book_link', 1, 3); function custom_book_link( $link, $post = 0 ){ if ( $post->post_type == 'book' ){ return home_url( 'book/' . $post->ID .'/' ); //不带.html后缀 } else { return $link; } } add_action( 'init', 'custom_book_rewrites_init' ); function custom_book_rewrites_init(){ add_rewrite_rule( 'book/([0-9]+)?$', //不带.html后缀 'index.php?post_type=book&p=$matches[1]', 'top' ); }
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END