本文最后更新于 954 天前,其中的信息可能已经有所发展或是发生改变。
query_posts()
用于在wordpress主查询中显示那些文章,可通过参数,很大程度的自定义文章列表。它会替代wordpress本身的查询,使用该查询后,最好要使用wp_reset_query();来主动重置查询。
两种用法:
$args = array(
'参数1' => '参数值',
'参数2' => '参数值'
)
具体参数见下方
query_posts($args);
query_posts(参数1=参数值&参数2=参数值);
WP_Query
wordpress数据库查询的一个类,包含的自定义查询的参数。
'author' => '1,3,-5' 作者id,多个id用逗号分隔,排除id用-号 'author_name' => 'black' 用户昵称 'cat' => '1,3,-5' 分类id,多个id用逗号分隔,排除id用-号 'category_name' => 'black' 分类别名 'category__and' => array(1,2) 满足这两个分类id,注意两个下划线 'category__in' => array(1,2) 满足任意分类id,注意两个下划线 'category__not_in' => array(1,2) 排除掉这两个分类id,注意两个下划线 'tag' => 'red' 标签别名 'tag_id' => '1,3,-5' 标签id,多个id用逗号分隔,排除id用-号 'tag__and' => array(1,2) 同上 'tag__in' => array(1,2) 同上 'tag__not_in' => array(1,2) 同上 'tag__slug_and' => array('ab','cd') 同上,别名 'tag__slug_in' => array('ab','cd') 同上,别名 'tax_query' => array( 自定义分类法 'relation' => 'AND', AND或者OR,SQL语句 array( 'taxonomy' => 'size' 自定义分类法 'field' => 'slug' 查询条件,可选id或slug 'terms' => array('one','two') 自定义分类法值 'include_children' => true 是否包含子分类,默认true 'operator' => 'IN' 连接条件,IN、NOT IN、AND。意义是控制这些参数以何种方式拼接SQL ) ) 'p' => '1,3,-5' 文章id,多个id用逗号分隔,排除id用-号 'name' => 'black' 文章别名 'page_id' => '1,3,-5' 页面id,多个id用逗号分隔,排除id用-号 'pagename' => 'black/son' 页面别名,用斜杠/分隔父页面和子页面 'post__in' => array(1,2) 同上,上面出现过的不再描述了 'post__not_in' => array(1,2) 'post_type' => 'psot' 文章类型,默认post,根据文章类型获取文章 'post_type' => 'page' 页面类型 'post_type' => 'zidingyi' 自定义文章类型 'post_type' => 'any' 任意类型 'post_status' => 'publish' 文章状态,已发布 'post_status' => 'pending' 待审核 'post_status' => 'draft' 草稿 'post_status' => 'auto-draft' 自动保存为草稿 'post_status' => 'future' 定时发布的文章 'post_status' => 'private' 不公开的文章,私有 'post_status' => 'inherit' 版本 'post_status' => 'trash' 回收站 'post_status' => 'any' 任意文章状态 'order' => 'desc' 降序排序,默认 'order' => 'asc' 升序排序 'orderby' => 'date' 日期排序,默认 'orderby' => 'none' 不排序 'orderby' => 'ID' ID排序 'orderby' => 'author' 作者排序 'orderby' => 'title' 标题排序 'orderby' => 'modified' 修改日期排序 'orderby' => 'parent' 父页面排序 'orderby' => 'rand' 随机排序 'orderby' => 'comment_count' 评论数量排序 'orderby' => 'menu_order' 评论数量排序 'orderby' => 'meta_value' meta排序,按字母排序而并非数字,meta_key=keyname必须存在 'orderby' => 'meta_value_num' meta数字值排序,按数字排序,meta_key=keyname必须存在 'orderby' => 'post__in' 根据post__in中的参数顺序来排序 'ignore_sticky_posts' => 'false' 在列表开头是否排除置顶文章 'year' => 2021 年份 'monthnum' => 12 月份 'w' => 20 一年中的第几周 'day' => 13 一个月中的第几天 'hour' => 12 24小时制 'minute' => 16 分钟 'second' => 59 秒 'meta_key' => 'site' 自定义字段的字段 'meta_value' => 'www.gdbaiqian.com' 自定义字段的值,字符串 'meta_value_num' => 3 自定义字段的值,数字 'meta_compare' => '=' 连接条件,默认=,>、<、!=、>=、<= 'meta_query' => array( 自定义字段参数 array( 'key' => 'site' 自定义字段的键 'value' => 'www.gdbaiqian.com' 自定义字段的值,数组的值只能是IN、NOT IN、BETWEEN、NOT BETWEEN 'type' => 'CHAR' 字段类型,可选值NUMERIC、BINARY、CHAR、DATE、DATETIME、DECIMAL、 SIGNED、TIME、UNSIGNED默认CHAR 'compare' => 'IN' 连接条件,可选值!=、>、>=、<、<=、LIKE、NOT LIKE、IN、NOT IN、 BETWEEN、NOT BETWEEN默认为= ) ) 'no_found_rows' => true 默认false,为了分页,WordPress在查询中使用SQL_CALC_FOUND_ROWS查询 ,即使不需要分页,通过设置这个参数为真,让WordPress不查询数据总行数 ,降低数据库负载,若设置为true,分页将不工作 'cache_results' => true 默认true,缓存 'update_post_term_cache' => true 默认true,缓存 'update_post_meta_cache' => true 默认true,缓存 's' => '$s' 将参数传递到搜索功能 'exact' => true 搜孙完整的titles/posts,默认false 'sentence' => true 进行短语搜索,默认false
查询用法:
创建参数数组 $args = array( 使用上面的参数 ); 重构查询,传递参数 $the_query = new WP_Query( $args ); 循环完文章后,要wp_reset_postdata();重置文章数据