美文网首页
主题开发基础(二)之循环

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

作者: little_niu | 来源:发表于2015-02-11 20:30 被阅读0次

    一、循环的基本结构:

    <?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)

    相关文章

      网友评论

          本文标题:主题开发基础(二)之循环

          本文链接:https://www.haomeiwen.com/subject/kcajxttx.html