主题开发基础(二)之循环

2015-02-11  本文已影响0人  little_niu

一、循环的基本结构:

<?php if( have_post() ) : ?>

     <?php while( have_post() ) : the_post(); ?>

          <?php the_title(); ?>

      <?php endwhile; ?>

<?php endif; ?>

说明:1.have_post()函数:判断当前页面是否还有要显示的文章

2.the_post()函数:准备好要显示的文章内容

3.the_title()函数:显示文章的标题,还有类似的函数,也叫模版标签  

注:你可以在循环里添加任何你想显示的东西,文章的正文,特色图像,发布日期,作者等等。找到合适的模版标签,放在循环里,再加上点自己的设计。

相关资源:

http://codex.wordpress.org/Template_Tags

http://codex.wordpress.org/Function_Reference/have_posts

http://codex.wordpress.org/Function_Reference/the_post

http://codex.wordpress.org/The_Loop

二、条件判断

if...else    <?php if() : ?> ... <?php else: ?> ... <?php endif; ?>

in_category(id)  以文章分类作为判断条件

三、自定义查询

      前面我们在循环里使用了 WordPress 默认的查询来显示相关的内容,默认的查询会使用当前页面的路径作为查询的参数,然后到数据库里帮我们找到相应的内容。也就是在首页上会显示所有首页上的东西,在分类页面会显示属于这个分类的文章,在文章页面只会显示当前这个文章的内容。

WP_Query()  http://codex.wordpress.org/Class_Reference/WP_Query

<?php if ( have_posts() ): ?>

<?php while ( have_posts() ) : the_post(); ?>

<p><?php the_title(); ?></p>

<?php endwhile; ?>

<?php endif; ?>

<?php

$myqueryargs = array(

'post_type' => 'post',

'posts_per_page' => 10,

'orderby' => 'date',

'order' => 'ASC',

'category__in' => array( 8,15 ),

);

?>

<?php $myquery = new WP_Query( $myqueryargs ); ?>

<?php if ( $myquery -> have_posts() ): ?>

<ol>

<?php while ( $myquery -> have_posts() ) : $myquery -> the_post(); ?>

<li>

<?php the_title(); ?>

</li>

<?php endwhile; ?>

</ol>

<?php endif; ?>

说明:$myquery -> 表示我们自己新建的这个查询里还有要显示的内容吗,在have_post(),the_post()前面加上$myquery ->,意思是去准备好在我们的查询里的内容,最后使用wp_reset_postdata(),恢复一下查询。

自定义查询的参数设置:

'post_type' => 设置查询的内容类型(post/page...)

'posts_per_page' =>设置显示内容数量

'orderby' =>设置内容的排序方法,比如按照文章修改的日期,按照文章评论的数量等等,默认查询会按照文章的发布日期,降序排列。

'order' =>升序或降序

'category_in' =>id ,只显示某个分类的内容,若指定多个分类,需将id放在一个数组里,array(8, 15)

上一篇下一篇

猜你喜欢

热点阅读