php实现新闻置顶功能,hexo实现文章置顶功能

想将写好的一些文章置顶,但是hexo好像默认不提供这个功能,希望以后的版本会有。

这里简单写一下实现hexo文章置顶功能,参考 为Hexo添加文章置顶功能(三)

深度参考 解决Hexo置顶问题

修改

找到node_modules/hexo-generator-index/lib/generator.js这个文件。

var posts = locals.posts;

下面添加

posts.data = posts.data.sort(function(a, b) {

if(a.top && b.top) { // 两篇文章top都有定义

if(a.top == b.top) return b.date - a.date; // 若top值一样则按照文章日期降序排

else return b.top - a.top; // 否则按照top值降序排

}

else if(a.top && !b.top) { // 以下是只有一篇文章top有定义,那么将有top的排在前面(这里用异或操作居然不行233)

return -1;

}

else if(!a.top && b.top) {

return 1;

}

else return b.date - a.date; // 都没定义按照文章日期降序排

});

完整代码

'use strict';

var pagination = require('hexo-pagination');

module.exports = function(locals) {

var config = this.config;

var posts = locals.posts.sort(config.index_generator.order_by);

posts.data = posts.data.sort(function(a, b) {

if(a.top && b.top) { // 两篇文章top都有定义

if(a.top == b.top) return b.date - a.date; // 若top值一样则按照文章日期降序排

else return b.top - a.top; // 否则按照top值降序排

}

else if(a.top && !b.top) { // 以下是只有一篇文章top有定义,那么将有top的排在前面(这里用异或操作居然不行233)

return -1;

}

else if(!a.top && b.top) {

return 1;

}

else return b.date - a.date; // 都没定义按照文章日期降序排

});

var paginationDir = config.pagination_dir || 'page';

var path = config.index_generator.path || '';

return pagination(path, posts, {

perPage: config.index_generator.per_page,

layout: ['index', 'archive'],

format: paginationDir + '/%d/',

data: {

__index: true

}

});

};

使用

在文章添加 top 标签可以设置置顶顺序。

---

title: 文章名

date: 文章发布时间

tags: 文章标签

top: 100(文章置顶)

---

注意

迁移blog等注意备份node_modules/hexo-generator-index/lib/generator.js这个文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值