• 欢迎访问窗外天空网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站
  • 本站兼容IE9+,谷歌Chrome,火狐Firefox等主流浏览器

wordpress获取分类下文章列表四种方法

Wordpress nixon li 101次浏览 0个评论 扫描二维码

我们在wordpress开发中, 在调取分类下的文章,我们通常是使用query_posts()函数,今天我们一起总结一下各种方法的优劣。

一、使用query_posts()函数

以下代码实际上使用query_posts()函数调取分类目录下的文章,showposts是调取的数量。

<?php
    $cats = get_categories();
    foreach ( $cats as $cat ) {
    query_posts( 'showposts=10&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()的原因。
修改其中的数字10可以设定显示的篇数,可用于在单页面上显示全部分类文章。

二、使用get_posts()函数

只需通过get_posts来获取分类ID就可以输出分类下的文章,以及通过numberposts来控制文章显示的数量。

<?php $posts = get_posts( "category=4&numberposts=10" ); ?>  
<?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; ?>

三、结合wp_list_categories()函数输出分类标题

<h2> <?php wp_list_categories('include=11&title_li=&style=none'); ?> </h2>
<!--//输出 ID 为11的分类的标题 -->
<?php  echo category_description(11); ?>
<!--//输出 ID 为11的分类的描述 -->
<?php query_posts('showposts=10&cat=11'); ?>
<!-- //query_posts 给 The Loop 限定的条件是:显示12篇日志和分类 ID 为11 -->
<?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 结束 -->

四、自定义函数

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(10) 显示10篇文章。

div class="popular">  
    <h2>Most Popular Posts</h2>  
    <ul>  
        <?php echo popularPosts(10); ?>  
    </ul>  
</div>

版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明wordpress获取分类下文章列表四种方法
喜欢 ( 0)
微信扫码
支付宝扫码
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址