新浪微博的置顶功能相信大家非常熟悉,其实 WordPress 早在 2.7 之后就拥有了文章置顶的功能。但是,实际上这个功能在大多主题上却没太多用武之地。我想其中的一个原因,是很多像我们这样的个人博客,首页基本上只展示最新的5-10篇文章,如果再置顶个几篇,首页的内容基本上就不变了。
不过,如果我们换个角度,把置顶文章从页面中央移到侧栏,这样的 效果应该会不错,首先首页的文章列表中不会受到置顶的干扰,同时位于侧栏的置顶文章又有类似文章推荐的效果,我们动手来试试。
整个解决方案需要考虑到两点:
- 首页展示文章的时候要忽略置顶文章,这里的忽略是指不置顶显示;
- 侧栏需要增加显示置顶文章列表的小工具;
步骤一:首页忽略置顶文章
在主题的 functions.php 中加入以下代码:
/* * Alter the main loop */ function dangopress_alter_main_loop($query) { /* Only for main loop in home page */ if (!$query->is_home() || !$query->is_main_query()) return; // ignore sticky posts, don't show them in the start $query->set('ignore_sticky_posts', 1); } add_action('pre_get_posts', 'dangopress_alter_main_loop');
这里通过指定ignore_sticky_posts
为1,查询出的文章列表就会忽略置顶文章。