WordPress获取分类目录下文章列表的方法
1.使用query_posts()函数
以下代码使用query_posts()函数调取分类目录下的文章,showposts是调取的数量。
- <?php
- $cats = get_categories();
- foreach ( $cats as $cat ) {
- query_posts( 'showposts=20&cat=' . $cat->cat_ID );
- ?>
- <h3><?php echo $cat->cat_name; ?></h3>
- <ul class="sitemap-list">
- <?php while ( have_posts() ) { the_post(); ?>
- <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
- <?php } wp_reset_query(); ?>
- </ul>
- <?php } ?>
在官方文档中,这样强调:“如果我们不得不用到query_posts(),必须确保每次使用query_posts()后同时执行wp_reset_query();”。这就是为什么在上面的代码中加上了wp_reset_query()的原因。
修改其中的数字20可以设定显示的数量,可用于在单页面上显示全部分类文章。
2.使用get_posts()函数
只需通过get_posts来获取分类ID就可以输出分类目录下的文章,并且通过numberposts来控制显示的数量。
- <?php $posts = get_posts( "category=5&numberposts=20" ); ?>
- <?php if( $posts ) : ?>
- <ul><?php foreach( $posts as $post ) : setup_postdata( $post ); ?>
- <li>
- <a href=”<?php the_permalink() ?>” rel=”bookmark” title=”<?php the_title(); ?>”><?php the_title(); ?></a>
- </li>
- <?php endforeach; ?>
- </ul>
- <?php endif; ?>
3.结合wp_list_categories()函数输出分类标题
- <h2> <?php wp_list_categories('include=12&title_li=&style=none'); ?> </h2>
- <!--//输出 ID 为12的分类的标题 -->
- <?php echo category_description(12); ?>
- <!--//输出 ID 为12的分类的描述 -->
- <?php query_posts('showposts=20&cat=12'); ?>
- <!-- //query_posts 给 The Loop 限定的条件是:显示20篇日志和分类 ID 为12 -->
- <?php while (have_posts()) : the_post(); ?>
- <!--//The Loop 开始 -->
- <li>
- <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><? echo wp_trim_words( get_the_title(),24 ); ?></a>
- <?php the_time('m/d'); ?>
- </li>
- <!-- //用列表的方式输出带有链接的文章标题-->
- <?php endwhile;wp_reset_query(); ?>
- <!--//The Loop 结束 -->
4.自定义函数
(1).我们自定义一个函数popularPosts()
- function popularPosts($num) {
- global $wpdb;
- $posts = $wpdb->get_results("SELECT comment_count, ID, post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , $num");
- foreach ($posts as $post) {
- setup_postdata($post);
- $id = $post->ID;
- $title = $post->post_title;
- $count = $post->comment_count;
- if ($count != 0) {
- $popular .= '<li>';
- $popular .= '<a href="' . get_permalink($id) . '" title="' . $title . '">' . $title . '</a> ';
- $popular .= '</li>';
- }
- }
- return $popular;
- }
这里使用get_results()查询了数据库,相对速度快一点。
(2).调用函数 popularPosts(20) 显示20篇文章。
- <div class="popular">
- <h2>Most Popular Posts</h2>
- <ul>
- <?php echo popularPosts(20); ?>
- </ul>
- </div>
QQ游客
你这主题优化的,好好看
九哥@QQ游客
谢谢,说明我功夫没白下啊 😳
里维斯社
看起来好复杂,学习了
九哥@里维斯社
没事,慢慢来,有问题互相交流。
懿古今
所以说WordPress是最适合折腾的,一个功能就有很多种实现方法,不错
九哥@懿古今
嗯,很好很强大,比较人性化,用户体验也好,选择性强。