WordPress的主循环The Loop用来输出内容,例如:文章内容、页面内容、文章列表。一些WordPress函数规定必须在Loop循环中使用,这是因为它们需要获取文章的ID
例如这些函数:
- the_title():输出标题;
- the_time():输出文章发表时间;
- the_category():输出文章的分类;
- the_permalink():输出文章的链接;
WordPress函数的命名很科学,从字面上基本就能猜到函数作用,通常带有the的,都需要获取当前文章的ID,需要在主循环中使用。
下面来看看WordPress主循环The Loop相关代码:
<?php if( have_posts() ) : ?> <?php while( have_posts() ) : the_post(); ?> 这里是要输出的具体内容... <?php endwhile; ?> <?php endif; ?>
以文章和页面为例,输出文章/页面的标题和内容:
<?php if( have_posts() ) : ?> <?php while( have_posts() ) : the_post(); ?> <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <h1 class="title"><?php the_title(); ?></h1> <div class="content"> <?php the_content(); ?> </div> </article> <?php endwhile; ?> <?php endif; ?>
同样的,以分类或首页的文章列表输出为例:
<?php if( have_posts() ) : ?> <?php while( have_posts() ) : the_post(); ?> <article class="entry"> <h1><a href="https://www.ztjun.com/<?php the_permalink(); ?>" rel="bookmark"><?php the_title_attribute(); ?></a></h1> <footer class="post-meta"> <time class="dashicons-before dashicons-clock" datetime="<?php the_time( 'c' ); ?>" pubdate><?php the_time( 'Y-m-d' ); ?></time> <?php if ( ! post_password_required() && ( comments_open() || get_comments_number() ) ) : ?> <span class="comments-links dashicons-before dashicons-admin-comments">评论(<?php comments_popup_link( '0', '1', '%' ); ?>)</span> <?php endif; ?> </footer> <p class="excerpt"><?php echo mb_strimwidth(wp_strip_all_tags($post->post_content, true), 0, 200, '...' ); ?></p> </article> <?php endwhile; ?> <?php endif; ?>