最新公告
  • 欢迎您光临大资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 给 WordPress 添加分类置顶功能并在主题前端调取置顶分类

    给 WordPress 添加分类置顶功能并在主题前端调取置顶分类 最后编辑:2021-04-26
    增值服务: 自动发货 使用说明 安装指导 环境配置二次开发BUG修复

    给 WordPress 添加分类置顶功能并在主题前端调取置顶分类

    WordPress 有一个的文章置顶功能,可以让我们把指定的文章放在页面最前面。在做一个WordPress主题开发的时候,我们遇到了需要把一个分类的子分类放在父级分类最前面的功能,和文章置顶功能有点类似。

    WordPress 默认是没有分类置顶功能的,是否可以通过代码为添加分类置顶的功能到 WordPress 中呢?我们研究了一下,发现是可以的,实现方法也不麻烦。

    给 WordPress 添加分类置顶功能

    首先,我们知道,WordPress 的置顶文章信息是存储在 wp_options 数据表中的,通过get_option(\'sticky_posts\')  函数获取置顶文章。

    我们只需要想办法给分类添加一个置顶文章的设置,然后在保存分类的时候把这个设置保存在数据中即可。如下图,下面的 “Mark this cateogry as featured” 是一个自定义分类法字段,实现方法有很多,在这里就不在多说了。

    我们需要在保存分类法的同时,保存分类置顶信息到 wp_options 数据库中。把保存置顶信息的处理流程挂载到 edited_category 动作钩子上面即可实现。

    add_action( \’edited_category\’, function ( $term_id, $tt_id )
    {
    // 获取分类置顶设置信息
    $is_featured = isset( $_POST[ \’_featured\’ ] );

    // 获取已保存的分类置顶信息
    $featured_term = get_option( \’featured_term\’, [] );

    // 如果当前分类设置了置顶,把当前分类 ID 添加到分类置顶设置中
    if ( $is_featured && $is_featured == \’yes\’ ) {
    $featured_term [] = $term_id;
    } else {
    // 如果当前分类没有设置置顶,并且分类置顶设置中有当前分类(之前添加过,现在取消了),
    // 则从分类置顶设置中移除当前分类
    $featured_index = array_search( $term_id, $featured_term );

    if ( $featured_index !== false ) {
    unset( $featured_term[ $featured_index ] );
    }
    }

    // 去重,保存更新后的数据到分类置顶设置中
    update_option( \’featured_term\’, array_unique( $featured_term ) );

    }, 10, 2 );

    在前端调用置顶的分类

    有了分类置顶的信息,获取置顶分类就简单多了,直接通过下面的代码调用即可,如果需要排除置顶的分类,把下面代码中的 include 换成 exclude 即可。

    $featured_terms = get_option(\’featured_term\’);
    $terms = get_terms( [
    \’taxonomy\’ => \’category\’,
    \’include\’ => $featured_terms,
    ] );

    不只是分类目录,标签、自定义分类法都可以通过类似的方法添加置顶功能,只需要把置顶数据保存到适当的设置中即可,WordPress Hook 系统 是一个非常灵活强大的功能,恰当的利用,我们可以为 WordPress 增加各种个样的功能来满足我们的需求。

    猜你在找

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    大资源网
    一个高级程序员模板开发平台
    • 2021-04-26Hi,初次和大家见面了,请多关照!

    发表评论

    售后服务:

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

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

    联系作者
    • 7030会员总数(位)
    • 163675资源总数(个)
    • 2704本周发布(个)
    • 2094今日发布(个)
    • 3679稳定运行(天)

    开通VIP 知识课堂
    升级SVIP尊享更多特权立即升级
    My title page contents
    召唤伊斯特瓦尔