写在前面
好久没更新了,再来更新一下。
之前写baolog主题的时候留下了一个bug,就是首页的置顶文章会显示两次。
因为我用了两种方法进行获取文章。一种是使用wp_query()函数,一种是正常的while(have_posts())
今天就写一下这两种。
教程开始
加条件的wp_query()
如果你只需要获取置顶文章,那用这个就好了!
但是这种方法翻页以后置顶文章不会消失。
//判断是否置顶文章
$sticky = get_option('sticky_posts');
if (!empty($sticky)) {
$args = array(
'posts_per_page' => -1, //获取所有文章
'post__in' => $sticky, //只取置顶的文章
);
//查询条件:只取置顶文章
$the_query = new WP_Query($args);
if (is_paged()){
while ($the_query->have_posts()) {
$the_query->the_post();
//查询完置顶文章以后,根据自己的需要输出需要的内容
}
wp_reset_query(); //如果你下面还有一个文章的循环,则需要写这个(重置wp_query)。否则你循环的全是置顶文章。在这里我被坑过!
}
使用原始方法
注意,用这种方法,翻页以后置顶文章就没了,所以上下结合以后,虽然有点冗余了。但是这是我想出来的最好办法啦,如果有更好的,球球教我!
while (have_posts()) {
the_post();
...此处省略一堆根据自己需要写的代码
//如果你要在置顶的文章标题处写 [置顶这种东西],加上下面的这种判断就可以了!
if (is_sticky()) echo '<span class="your_class_name">[ 置顶 ] </span>';
}
写在最后
这是我目前能想出来的最优的方法了,欢迎大佬教教我!