wordpress标签之query_posts、WP_Query
本文最后更新于 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();重置文章数据
文章原文:https://www.luojiasan.com/category/wordpress/858.html
文章来源:https://www.luojiasan.com
[声明]本站内容除特别声明外,均属站长手写原创内容。
1、本站所有原创文章、图片等资料,如需转载使用,必须附上来源出处及链接方式;
2、若本站侵犯到您的权益或任何版权问题,请立即告知本站,我们将及时删除并致以最深的歉意!
3、本站转载文章版权归原作者所有,内容为作者个人观点,本站只提供参考并不构成任何投资及应用建议。任何本站转载文章链接及得到的资讯、产品、服务,本站概不负责,亦不负任何法律责任。
暂无评论

发送评论 编辑评论


				
上一篇
下一篇