WordPress控制置顶文章数量,部分内容输出
如何控制WordPress置顶文章数量,部分内容输出?WordPress置顶文章的设置在发布文章时有选项,最难的方法是如何在模板里把置顶文章按一定格式输出,这就是本篇文章我们要讨论的内容。
操作方法
- 01
WordPress置顶文章重点函数:关于置顶文章WordPress有两个常用的函数1.is_sticky():判断文章是否是置顶的,是就返回true,不是就返回false2.get_option('sticky_posts'): 获取置顶文章ID,返回包含各置顶文章ID的数组 对于这两个函数怎么使用下面给三种显示方法:
- 02
一、按置顶数量,内容部分输出。 注:<!--?php the_excerpt(); ?-->在新优吸xinuxi主题中输出部分内容。 <?php $sticky = get_option('sticky_posts'); rsort( $sticky );//对数组逆向排序,即大ID在前 $sticky = array_slice( $sticky, 0, 1);//输出置顶文章数,请修改5,0不要动,如果需要全部置顶文章输出,可以把这句注释掉 query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1 ) ); if (have_posts()) :while (have_posts()) : the_post(); ?> <h2><a style="color: #000000;" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a></h2> <?php the_excerpt(); ?> <?php endwhile; endif; ?>
- 03
二、按置顶数量,内容全文输出。 首页展示文章时,如果是置顶文章就全文输出。 方法简介:在loop循环时,通过 is_sticky()判断是否是置顶文章 是的话就设置全局变量$more=1;然后调用the_content();就是全文输出了 否则不是置顶文章的话就设置全局变量$more=0;然后调用the_content('更多...');就是截取标签后的输出。 <?php if (have_posts()) : ?> <p>分章列表如下</p> <ul> <?php while (have_posts()) : the_post(); if (is_sticky()): global $more; // 设置全局变量$more $more = 1; ?> <li> <h2>[置顶]<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a><h2/> <p><?php the_content(); ?></p> </li> <?php else: global $more; $more = 0; ?> <li> <h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a><h2/> <p><?php the_content('阅读更多'); ?></p> </li> <?php endif; ?> <?php endwhile; ?> </ul> <?php else: ?> <h2>没有找到相应文章</h2> <?php endif; ?>
- 04
三、全部置顶输出。 一次性把置顶文章全部找出来,然后用列表的方法呈现 方法简介:通过get_option('sticky_posts')函数把置顶文章id全部找出来,再通过query_posts()函数对这部分id的文章循环列表输出。 <ul> <?php $sticky = get_option('sticky_posts'); rsort( $sticky );//对数组逆向排序,即大ID在前 $sticky = array_slice( $sticky, 0, 5);//输出置顶文章数,请修改5,0不要动,如果需要全部置顶文章输出,可以把这句注释掉 query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1 ) ); if (have_posts()) :while (have_posts()) : the_post(); ?> <li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a></li> <?php endwhile; endif; ?> </ul>