wordpress模板开发之如何输出文章列表

更新时间:2022-06-23 21:15:55 来源:青锋建站 作者:青锋建站
  wordpress作为一款博客级别的网站内容管理系统,最基础的功能也是输出文章列表。利用这一功能我们可以把文章的一种分类作为产品,从而来使用wordpress制作企业网站,以下是青锋建站给大家分享的wordpress模板开发之如何输出文章列表。
wordpress文章列表

wordpress文章列表页一般具备的功能

  大多数网站都有文章列表页面,在列表页面中,我们可以显示这个列表中所有文章的标题、缩略图、摘要、分类等信息。下面的代码首先判断是否有循环,如果有,则逐个显示循环中的内容。have_posts() 函数检查当前页面是否有文章。 循环输出文章列表的基本使用方法如下。
<?php 
get_header();
// 循环代码从这里开始
if ( have_posts() ) : 
    while ( have_posts() ) : the_post(); 
        the_title( '<h1>', '</h1>' ); //循环主体部分
        the_content();//循环主体部分
    endwhile; 
else: 
    _e( '抱歉,未找到您需要的文章。', 'textdomain' ); 
endif; 
get_sidebar();
get_footer();
?>
  我们可以在上面的循环主体部分使用模版标签显示各种文章内容、文章自定义字段,显示文章的时候,我们可以使用条件标签控制文章是否在满足某种条件的情况下显示。下面是一些常用的模版标签:
next_post_link():显示在当前文章之后 发布的文章的链接
previous_post_link()– 显示在当前文章之前发布的文章的链接
the_category():显示当前文章所在的分类
the_author():显示文章作者
the_content():显示文章正文内容
the_excerpt():显示文章摘要
the_ID():显示文章或页面 ID
the_meta():显示文章或页面的自定义字段
the_shortlink():显示文章的短链接
the_tags():显示文章所包含的标签
the_title():显示文章标题
the_time():显示文章发布时间

为wordpress不同的文章分类栏目设计不同的文章列表样式

  我们利用wp模板中的条件函数 in_category() 来为文章分类 ID 为 3 的栏目分类显示不同的样式。 
<?php
// 开始循环
if ( have_posts() ) : 
    while ( have_posts() ) : the_post();
        // 判断文章是否在分类 3 中,如果是,添加 CSS 类 "post-category-three". 否则,添加 CSS 类 "post".
        if ( in_category( 3 ) ) : ?>
            <div class="post-category-three">
        <?php else : ?>
            <div class="post">
        <?php endif; 

            // 显示文章标题
            the_title( '<h2>', ';</h2>' ); 

            // 显示该文章作者存档的链接
            printf( __( '作者 %s', 'textdomain' ), get_the_author_posts_link() );

            // 显示文章内容
            ?>
            <div class="entry">
                <?php the_content() ?>
             </div>
    
            <?php
            // 显示逗号分隔的文章分类
            _e( '文章分类 ', 'textdomain' ); the_category( ', ' ); 

        // 关闭 div
       ?>
       </div>

    <?php 
    // 结束循环,下面是没有文章时显示的内容
    endwhile; 

else :
    // 如果没有文章,显示提示消息
     _e( '抱歉,未找到您需要的文章。', 'textdomain' );

// 结束判断和循环
 endif;
?>

多次输出post文章列表

  在某些情况下,我们可能需要使用多个循环。例如,青锋建站需要在页面顶部的内容列表中显示文章标题,然后在页面下方显示文章列表并带有摘要。因为我们使用的是同一个循环,我们只需要在开始第二次循环之前重置循环即可,使用函数 rewind_posts() 即可实现这个功能。

这下面是一个rewind_posts() 示例 :

<?php
// 开始第一次循环
if ( have_posts() ) : 
    while ( have_posts() ) : the_post();
        the_title();
    endwhile;
endif;

// 使用 rewind_posts() 重置循环
rewind_posts();

// 开始第二次循环
while ( have_posts() ) : the_post();
    the_content();
endwhile;
?>

新建不同内容的文章列表

  如上面的代码所示,我们可以非常容易的循环同一个查询结果两次或多次,但是很多时候,这不是我们所需要的。有时候青锋建站需要在一个页面上显示不同的文章,这种情况下,我们需要新建一个文章查询,然后循环这个新的文章查询结果,示例代码如下:

<?php
// 显示所有文章
if ( have_posts() ) : 
    while ( have_posts() ) : the_post();
        the_title();
        the_content();
    endwhile;
else :
    _e( '抱歉,未找到您需要的文章。' );
endif;
wp_reset_postdata();                                                        

// 创建一个新的文章查询,获取分类 「category_name」中的文章。
$secondary_query = new WP_Query( 'category_name=example-category' );        

// 循环新的查询结果
if ( $secondary_query->have_posts() )
    echo '<ul>';
    while ( $secondary_query->have_posts() ) : $secondary_query->the_post();
        the_title( '<li>', '</li>' );
     endwhile;
     echo '</ul>';
endif;
wp_reset_postdata();
?>
  如上例所示,我们首先显示主循环中的结果。然后,使用 WP_Query 类查询指定分类中的文章。请注意,上面示例中的第二个循环和主循环还有一个区别:后者调用了 wp_reset_postdata() 函数来重置文章数据。

输出不同类别的文章列表的重置技巧

  一般来说wordpress新建多个文章列表时分成三种情况青锋建站将以三种情况来加以分析。
A-使用类别的文章列表的多次调用,即是同一种循环的多次调用。这种情况下我们使用rewind_posts()来重置循环操作。
B-使用query_posts() 函数新建一个主循环,在使用了这个函数新建查询后,我们必须使用 wp_reset_query() 来还原查询和文章数据。因为 query_posts()会新建一个主循环来替代当前页面的主循环,使用这个函数会带来一些副作用,新建循环是,我们尽量使用 WP_Query 按不是 query_posts 函数。
C-使用 WP_Query 新建自定义循环或使用了多个循环时,请使用 wp_reset_postdata() 来重置文章数据,这个函数将全局变量 $post 变量还原到主查询中的当前帖子。如果使用了WP_Query 新建查询,我们可以使用 wp_reset_query() 函数来还原文章数据(因为该函数已经调用了 wp_reset_postdata() 函数),但是最好的做法是使用 wp_reset_postadata 函数来还原使用 WP_Query 新建的文章循环。
  以上就是青锋建站给大家分享的wordpress模板开发之如何输出文章列表。青锋建站承接网站建设服务,包括织梦建站,phpcms建站,wordpress建站,CMS系统开发,SEO网站优化,网络营销推广,企业邮箱,400电话。

转载请注明来源网址:青锋建站-http://www.sjzphp.com/cmsxitong/wordpressxt/post_list_1395.html

地方分站

电话 15632335515 | 邮箱 943703539@qq.com | QQ 943703539 | 微信 qingfengjianzhan

Copyright © 2016-2026 青锋建站 版权所有