Notice: Trying to access array offset on value of type bool in /www/wwwroot/weimahe.com/wp-content/advanced-cache.php on line 472

Notice: Trying to access array offset on value of type bool in /www/wwwroot/weimahe.com/wp-content/advanced-cache.php on line 472
WordPress 创建自定义文章类型设置固定链接 - 微码盒
!
也想出现在这里? 联系我们
广告位

WordPress 创建自定义文章类型设置固定链接

在前面的文章中,我们注册过一个 WordPress 自定义文章类型——商城,也在后台实现的“商城”模块菜单的展示,在前台的文章也能正常展示。但是,前台的文章地址栏的地址T N j = $ N s不好看,因为我们的文章标题基u 7 8 3 0 M G .本都是中文的,所以代码翻译后会很长,有点难看,如下图o M . $ S i / 9

这样的地址,看上去非常不美观,也不利于网站SEO。因为,register_post_type()默认展示地址链接样| L L式是‘post-slug/postname’,也就是自定义文章类型名+文章名,而我们的文章名是中文,所以就造成了这种难看的地址链接。

要想让这个地址链接变好看,l # ] ,而且有利于 SEO,我们就要修改它的固定链接。在 register_post_type()N ) 5 V } * q函数中有固定链接相关的参数有% g 0 E { \ p rewrite 和 slug,我们要用到这 2 个参数(详见上一章的介绍)。出现上图中这种难看的地址是因为我们在 wordpress 后台设置了固定链接,而在 register_pos~ 0 E s K k c s #t_typp I ~ v _ oe()注册自定义文章类型时 rewrite 设置成 tr A T @rue,就会是“自定义文章类型名+文章名”的地址,因为 register_post_type()默认展示地址链接样式是‘post-slug/pos` o ] Ftname’,也就是自定义文章类型名h S k J i ) Z w =+文章名,所以我们要对它进行t h G . 8 Y h N修改,也就是修改这个固定链接的样^ N K 9 ; ) m式,如:让固定链接显示文章的 ID 号,而不是文章名。如下:

  1. http://xxxxxxx_ $ 8 fxxx.com/book/33.HTML

那么怎样实现呢?下面这段代码就是修改自定p 6 v d g w W N义文章类型的固定链接格式的代码,将它放到+ A S G的 functions.php 文件中就可以了:

  1. add_filter('post_type_link', 'custom_book_link', 1,9 g S t @ ] 3# Z l z v m);
  2. function custom_book_link( $^ Y B Olink, $post = 0 ){
  3. if ( $post-K & ~ S>pos8 ] A ht_type == 'book' )T + t t } , 23;
  4. return home_Y ; H = ( ^url( 'book/' . $post->ID .'.html' );
  5. } else {
  6. return $link;
  7. }
  8. }
  9. add_acti$ 3 q X E Gon( 'init', 'custom_book_rewrites_i_ 6 1nit' );
  10. function custom_book_rewrites_init(){
  11. add_rew{ N nrite_rule(
  12. 'bf u ? Sook/(J s L f ` / 3 j[0-9]+)?.html$',
  13. 'index.php?post_type=book&p=$matches[1]',
  14. 'top' );
  15. }

上面,这段代码只适应一个自定义文章类型时可用,如果你注册了多个自定义文f @ $ q I章分类时,就不适W ~ f用了。方法总比问题多,下面就是解决之道:

  1. $mytypes = array(
  2. 'type1' => 'slug1',
  3. 'type2' => 'slug2',
  4. 'type3' => 'slug3'
  5. );
  6. add_filter('post_type_] H j _ C 4link', 'custom_book_link', 1, 3);
  7. function cu7 o .stom_book\ 2 4 U_link( $link, $post = 0 ){
  8. global $mytypes;
  9. if ( in_array( $post->po| t k tst_type,array_keys($mytypes) ) ){
  10. return home_url( $mk T rytypes f Y ! U N 0 l1;$post->post_type].'/' . $post->ID .'.html' );
  11. } else {
  12. return $R W E 2 b h b mlink;
  13. }
  14. }
  15. add_# S 1action( 'inp [ _ * : wit', 'custom_book_rewrites_init' );
  16. function custom_book_rewrites_init(){
  17. global $mytypes;
  18. foreach( $myt\ N D * x t P ( \ypes as $k => $v )9 D 0 {
  19. add_rewrite_rule(
  20. $v.'* + s 1 D y/([0-9]+)?.htmW = s F Vl$',
  21. 'index.php?post_type='.$k.'&p=$matches[1]',
  22. 'top' );
  23. }
  24. }

上面的代码中,有 3 个自定义文章类型,它们分别是 slug1、slug2、slug3,当然,这个名称要跟你的注册时原名称要一至哦,slug1、slug2、slug3 分别为固定链接的前缀。

好了,如何修改 wordpress 自定义文章类型的固定链接样\ } (式就讲完了,后面还会陆续介绍相关内容。

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

WooCommerce购物车对象使用以及方法函数概括

2022-5-24 7:55:44

WordPress教程

给WooCommerce的运费(Shipping Method)增加自定义描述字段

2022-5-24 19:56:12

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索