#记录#wordpress调用置顶文章和控制数量

由于我的模板是用的是XIU,置顶文章已经设置了专门的模块,变成了首页最上面的4个豆腐块样式,由于某些原因,我想让置顶文章显示在文章列表里,所以自己研究了一下,最终在index.php里增加了一些代码,实现了这个功能。

首先我要了解wordpress是如何调用置顶文章的,所以搜索到了以下内容。

<?php
$sticky = get_option('sticky_posts');
rsort( $sticky );
$sticky = array_slice( $sticky, 0, 5);
query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1 ) );
if (have_posts()) :while (have_posts()) : the_post();
?>

<li><a href="<?php the_permalink(); ?>" target="_blank"><?php the_title(); ?></a></li>

<?php endwhile; endif; ?>

代码解释如下:

  • rsort( $sticky ); 对置顶文章数组逆向排序,即大ID在前;
  • $sticky = array_slice( $sticky, 0, 5);控制显示置顶文章的数量,输出置顶文章数,请修改5,0不要动,如果需要全部置顶文章输出,可以把这句注释掉;
  • ‘post__in’ => get_option(‘sticky_posts’)确定了该LOOP调用的是置顶文章列表。
  • ‘caller_get_posts’的作用是排除非指定性文章,即除了置顶文章之外,不显示其他的文章。
  • <li></li>这是最终显示样式,当然可以自定义

按照以上的内容把需要的东西提取出来

$sticky = get_option('sticky_posts');
rsort( $sticky );
$sticky = array_slice( $sticky, 0, 1);
query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1 ) );

这是我需要的内容,仅显示一个置顶文章,最后加上自己的需要显示的样式,放在index.php里的文章列表中,由于这个代码和调用其他文章的代码属于并存的,所以在文章列表其他页也会显示这篇置顶文章,所以需要增加一个页码判断,代码如下

if( $paged && $paged > 1 ){}else{
上面的调用代码
}

最终算是实现这个功能,还有其他好的方法正在进一步发掘中,有高手请回复谢谢!

转载请注明:开心VPS测评 » #记录#wordpress调用置顶文章和控制数量

赞 (3)