WordPress函数query_posts(控制文章输出)

query_posts()函数可以决定哪些文章出现在WordPress主循环(loop)中。通过这个函数你完全可以通过结合博客文章与页面逻辑(如条件标签)来定制博客文章的样式——而无需更改任何URL。

query_posts()函数说明

query_posts()用法:

<?php
// The Query
query_posts( $args );

// The Loop
while ( have_posts() ) : the_post();
    echo '<li>';
    the_title();
    echo '</li>';
endwhile;

// Reset Query
wp_reset_query();

?>

在index.php中查找if (have_posts())或while (have_posts(),在前面添加query_posts函数即可。不过以上方式可能会导致首页无法分页,那你可以将query_posts函数改成这样的行式:

// 下面这一行代码是必须的,不然你的首页不能分页
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
    // 这里以下面的方式添加query_posts参数,具体参数可以参加官方文档
    'orderby'   => comment_count,
    'paged' => $paged
);
query_posts($args);

参数说明:

  • 作者参数
    • author :(整数) 作者的ID,author=-3 表示排除的作者ID为 3 posts;
    • author_name:(字符) 作者的nicename(NOT name),author_name=xiaobei
  • 分类参数
    • cat (整数): 分类的ID
    • category_name (字符): 分类的slug(NOT name)
    • category__and(数组): 分类的ID
    • category__in (数组): 分类的ID
    • category__not_in (数组): 分类的ID
  • 标签参数
    • tag (字符): 标签的ID
    • tag__and (整数): 标签的ID
    • tag__in (数组): 标签的ID
    • tag__not_in(数组): 标签的ID
    • tag_slug__and(数组): 标签的slug(NOT name)
    • tag_slug__and(数组): 标签的slug(NOT name)
  • 处理多个分类
    • {tax}(分类):(字符) 分类的名字
    • tax_query:(数组) 分类的名字
      • taxonomy(字符): 分类名称
      • field(字符): id或者slug
      • terms(字符): 跟上面成对出现field’field’ => ‘slug’,则’terms’ => array( ‘action’, ‘commedy’ );’field’ => ‘id’,,则’terms’ => array( 103, 115, 206 )。
      • include_children(布尔): 是否包含子类
      • operator (字符):IN’, ‘NOT IN’, ‘AND’
  • Post & Page 参数
    • p (整数):post ID
    • name (字符):post slug
    • page_id (整数):page ID
    • page_nmae (字符):page slug
    • post_parent (整数):page id,只返回当前子类pages。
    • post__in (数组):page id
    • post__not___in (数组):page id
  • post_type类型参数:表示文章类型,值包括post、page、revision、attachment、any
  • post_status:表示文章状态,值包括pending(待审)、publish(已发布)、auto-draft(草稿), future(定时), private(私有), trash(已删除)。
  • 页码参数
    • showposts (整数):显示文章篇数
    • posts_per_page (整数):每頁文章显示篇数
    • posts_per_archive_page (整数):作用在search和archive
    • nopaging (布尔):true时则不分頁显示,直接显示全部文章
    • paged (整数):表示跳到第几页
  • order(字符):’ASC’(顺序)’DESC’(倒序)
  • orderby (字符):按照哪些只来排序,值有 ‘ID’(文章id)、’author’(文章作者)、’title'(文章标题)、’date'(文章作者)、’modified'(文章修改时间)、’parent’(文章父级分类)、’rand'(随机)、’comment_count'(最新评论时间)、’meta_value'(随机)、’meta_value’(自定单位名称,用法:’orderby’ => ‘meta_value’, ‘meta_key’ => ‘price’ )。
  • 时间参数
    • year (整数):年
    • monthnum (整数):月份
    • w (整数):星期
    • day (整数):天
    • hour (整数):小时
    • minute (整数):分
    • second (整数):秒
    >?php
    query_posts('monthnum=12&day=20');
    ?<
    
    表示12月20号的文章

query_posts()控制文章输出实例

  1. 让某分类的文章不显示/显示

    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $args = array(
        // 2, 6就是你不想显示的分类ID,多个用半角逗号隔开
        'category__not_in'   => array(2, 6),
        'paged' => $paged
    );
    query_posts($args);
    
  2. 对文章进行排序

    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $args = array(
        // 以下代码中的title就是orderby的值,按标题排序
        'orderby'   => title,
        'paged' => $paged
    );
    query_posts($args);
    
  3. 只显示相应ID的文章

    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $args = array(
        // 以下代码中的2,4,6就是文章的ID
        'post__in'   => array(2,4,6),
        'paged' => $paged
    );
    query_posts($args);
    
  4. 让置顶文章不置顶

    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $args=array(
        'paged' => $paged,
        'caller_get_posts' => 1
    );
    query_posts($args);
    
  5. 列出所有状态的文章

    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $args = array(
        'post_status' => array('publish', 'pending', 'draft', 'future', 'private', 'trash'),
        'paged' => $paged
    );
    query_posts($args);
    
  6. 控制文章的数量

    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $args = array(
         // 控制只显示10篇文章,如果将10改成-1将显示所有文章
        'showposts' => 10,
        'paged' => $paged
    );
    query_posts($args);
    

(wordpress官网query_posts()函数讲解)

本文源链接:http://www.html5jscss.com/wordpress-function-query_posts.html

转载请注明《WordPress函数query_posts(控制文章输出)》| html5jscss

评论关闭了.