Wordpress开发 - 获取置顶文章的方法

这篇博客介绍了在WordPress中如何正确获取并显示置顶文章,避免首页重复显示。作者提供了两种方法,一是使用wp_query()函数,二是常规的while循环。通过结合两种方法,确保翻页后置顶文章只显示一次。同时,文章还给出了代码示例和注意事项,帮助开发者解决这个问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

好久没更新了,再来更新一下。
之前写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">[&nbsp;置顶&nbsp;]&nbsp;</span>';
    }

写在最后

这是我目前能想出来的最优的方法了,欢迎大佬教教我!

Wordpress开发 - 获取置顶文章的方法! - 咕噜球 - 记录生活记录学习 (guluqiu.cc)icon-default.png?t=L9C2https://blog.guluqiu.cc/archives/34/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值