wordpress调用置顶文章sticky_posts的三种方法

  有时我们在开发wordpress时需要调用置顶文章sticky_posts,怎么调用呢?几种写法,有用到query_post的,有用到WP_Query,也有用到is_sticky(),下面随ytkah一起来看看吧

  第一种调用置顶文章的方法,用到query_post,代码如下

 10,
        'post__in' => get_option('sticky_posts'),
        'caller_get_posts' => 1
        );
        query_posts($query_post);
?>




参数用一个数组的形式放在$query_post中,关键的参数为'post__in' =>get_option('sticky_posts')和'caller_get_posts' => 0。

'post__in' => get_option('sticky_posts')确定了该 LOOP 调用的是置顶文章列表。

'caller_get_posts'的作用是排除非指定性文章,即除了置顶文章之外,不显示其他的文章。

'posts_per_page' => 10,控制文章的数量

不添加的情况下,如果置顶文章条目不足'posts_per_page'规定的值,会用最新文章替补完整。

  如果想调用除了置顶文章外的本栏目其余所有文章怎么操作?

 array(get_query_var('cat')),//如果是栏目调用,注意这行要加,否则会调用全站所有文章
        'posts_per_page' => 5,
        'post__not_in' => get_option('sticky_posts'),//排除置顶
        'caller_get_posts' => 1
        );
    query_posts($query_post);
?>




  

  第二种写法用到WP_Query,和第一种方法有点类似,代码如下

 -1,  
'post__in' => get_option( 'sticky_posts' )  
);  
$sticky_posts = new WP_Query( $args );  
while ( $sticky_posts->have_posts() ) : $sticky_posts->the_post();?>  
  •  

      第三种方法,用is_sticky()判断

     
    

    文章列表如下

    • [置顶]

    没有找到更多文章

      

    关于置顶文章wordpress有两个常用的函数
    is_sticky():判断文章是否是置顶的,是就返回true,不是就返回false
    get_option('sticky_posts'): 获取置顶文章ID,返回包含各置顶文章ID的数组

      首页展示文章时,如果是置顶文章就全文输出

      方法简介:在loop循环时,通过 is_sticky()判断是否是置顶文章

      是的话就设置全局变量$more=1;然后调用 the_content();就是全文输出了

      否则不是置顶文章的话就设置全局变量 $more=0;然后调用 the_content('更多...');就是截取<--more-->标签后的输出

     

    以上三种方法可以灵活运用,祝大伙开发愉快!

    参考资料https://developer.wordpress.org/reference/classes/wp_query/

     

    转载于:https://www.cnblogs.com/ytkah/p/11576656.html

    你可能感兴趣的:(wordpress调用置顶文章sticky_posts的三种方法)