最新公告
  • 欢迎您光临云创源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • wordpress主题开发:创建自定义文章类型post-type(3)——如何设置固定链接

    正文概述 云码哥   2019-12-31   171

    在前面的文章中,我们注册过一个WordPress自定义文章类型——商城,也在后台实现的“商城”模块菜单的展示,在前台的文章也能正常展示。但是,前台的文章地址栏的地址不好看,因为我们的文章标题基本都是中文的,所以代码翻译后会很长,有点难看,如下图:

    wordpress主题开发:创建自定义文章类型post-type(3)——如何设置固定链接

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

    要想让这个地址链接变好看,而且有利于SEO,我们就要修改它的固定链接。在register_post_type()函数中有固定链接相关的参数有rewrite和slug,我们要用到这2个参数(详见上一章的介绍)。出现上图中这种难看的地址是因为我们在wordpress后台设置了固定链接,而在register_post_type()注册自定义文章类型时rewrite设置成true,就会是“自定义文章类型名+文章名”的地址,因为register_post_type()默认展示地址链接样式是‘post-slug/postname’,也就是自定义文章类型名+文章名,所以我们要对它进行修改,也就是修改这个固定链接的样式,如:让固定链接显示文章的ID号,而不是文章名。如下:

    http://xxxxxxxxxx.com/book/33.html

    那么怎样实现呢?下面这段代码就是修改自定义文章类型的固定链接格式的代码,将它放到主题的functions.php文件中就可以了:

    1. add_filter('post_type_link', 'custom_book_link', 1, 3);
    2. function custom_book_link( $link$post = 0 ){
    3. if ( $post->post_type == 'book' ){
    4. return home_url( 'book/' . $post->ID .'.html' );
    5. else {
    6. return $link;
    7. }
    8. }
    9. add_action( 'init', 'custom_book_rewrites_init' );
    10. function custom_book_rewrites_init(){
    11. add_rewrite_rule(
    12. 'book/([0-9]+)?.html$',
    13. 'index.php?post_type=book&p=$matches[1]',
    14. 'top' );
    15. }

    效果如下图:

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

    1. $mytypes = array(
    2. 'type1' => 'slug1',
    3. 'type2' => 'slug2',
    4. 'type3' => 'slug3'
    5. );
    6. add_filter('post_type_link', 'custom_book_link', 1, 3);
    7. function custom_book_link( $link$post = 0 ){
    8. global $mytypes;
    9. if ( in_array( $post->post_type,array_keys($mytypes) ) ){
    10. return home_url( $mytypes[$post->post_type].'/' . $post->ID .'.html' );
    11. else {
    12. return $link;
    13. }
    14. }
    15. add_action( 'init', 'custom_book_rewrites_init' );
    16. function custom_book_rewrites_init(){
    17. global $mytypes;
    18. foreach$mytypes as $k => $v ) {
    19. add_rewrite_rule(
    20. $v.'/([0-9]+)?.html$',
    21. 'index.php?post_type='.$k.'&p=$matches[1]',
    22. 'top' );
    23. }
    24. }

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

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

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!395912093@qq.com
    2. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!
    3. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 本站不保证所提供下载的资源的准确性、安全性和完整性,源码仅供下载学习之用!
    8. 如用于商业或者非法用途,与本站无关,一切后果请用户自负!
    9. 如遇到加密压缩包,默认解压密码为"www.loowp.com",如遇到无法解压的请联系管理员!
    云创源码 » wordpress主题开发:创建自定义文章类型post-type(3)——如何设置固定链接

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们。
    链接地址失效怎么办?
    联系站长QQ:395912093

    发表评论

    售后服务:

    • 售后服务范围 1、商业模板使用范围内问题免费咨询
      2、源码安装、模板安装(一般 ¥90-300)服务答疑仅限SVIP用户
      3、单价超过200元的模板免费一次安装,需提供服务器信息。
      付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
      2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站等服务
      3、服务器环境配置(一般 ¥90-300)
      4、网站中毒处理(需额外付费,800元/次/质保三个月)
      售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
      免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 80027422@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!

    Hi, 如果你对这款模板有疑问,可以跟我联系哦!

    联系作者

    发表评论

    售后服务:

    • 售后服务范围 1、商业模板使用范围内问题免费咨询
      2、源码安装、模板安装(一般 ¥90-300)服务答疑仅限SVIP用户
      3、单价超过200元的模板免费一次安装,需提供服务器信息。
      付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
      2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站等服务
      3、服务器环境配置(一般 ¥90-300)
      4、网站中毒处理(需额外付费,800元/次/质保三个月)
      售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
      免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 80027422@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!

    Hi, 如果你对这款模板有疑问,可以跟我联系哦!

    联系作者
    • 1319会员总数(位)
    • 1189资源总数(个)
    • 84本周发布(个)
    • 0 今日发布(个)
    • 127稳定运行(天)

    加入VIP获取全站资源