WordPress自动查询WP_Query参数操作说明

原创
小哥 3年前 (2022-11-02) 阅读数 159 #PHP
文章标签 PHP

<?php
/**

  • WordPress 查询综合参照
    */

$args = array(

/**

  • 作者参数 - 展示部分作者发表的文章
    */
    author => 1,2,3, //(整数) - 作者ID [使用减号 (-) 排除作者 ID, 如: author => -1,-2,-3,]
    author_name => luetkemj, //(字符串) - 使用 user_nicename 用户昵称,(不是名称)

/**

  • 分类参数 - 显示类别中的文章
    */
    cat => 5,//(整数) - 分类id
    category_name => staff, news, //(字符串) - 分类别名(不是名称)
    category__and => array( 2, 6 ), //(数组) - 分类id
    category__in => array( 2, 6 ), //(数组) - 分类id
    category__not_in => array( 2, 6 ), //(数组) - 分类id

/**

  • 标签参数 - 展示带有特定标签的文章
    */
    tag => cooking, //(字符串) - 标签别名
    tag_id => 5, //(整数) -标签id
    tag__and => array( 2, 6), //(数组) - 标签id
    tag__in => array( 2, 6), //(数组) - 标签id
    tag__not_in => array( 2, 6), //(数组) - 标签id
    tag_slug__and => array( red, blue), //(数组) - 标签别名
    tag_slug__in => array( red, blue), //(数组) - 标签别名

/**

  • 自定义分类参数 - 显示某些自定义分类中的文章
  • 重要提示: tax_query 使用多维数组
  • 此查询结构允许我们查询多个自定义分类。
    */
    tax_query => array( //(数组) - 使用自定义分类查询参数 (3.1和更高版本可用).
    relation => AND, //(字符串) - 可用值包括 AND 或 OR 和 SQL 的 JOIN 效果是一样的
    array(
    taxonomy => color, //(字符串) - 自定义分类
    field => slug, //(字符串) - 使用别名或分类作为查询条件 (id 或 slug)
    terms => array( red, blue ), //(整数/字符串/数组) - 自定义分类分类条目
    include_children => true, //(布尔值) - 是否包含自分类,默认为真。
    operator => IN //(字符串) - 测试条件,可选值为 IN, NOT IN, AND.
    ),
    array(
    taxonomy => actor,
    field => id,
    terms => array( 103, 115, 206 ),
    include_children => false,
    operator => NOT IN
    )
    ),

/**

  • 文章 & 页面参数- 根据文章或页面参数显示文章
    */
    p => 1, //(整数) - 文章id
    name => hello-world, //(字符串) - 文章别名
    page_id => 1, //(整数) - 页面id
    pagename => sample-page, //(字符串) - 页面别名
    pagename => contact_us/canada, //(字符串) - 用斜杠‘/‘拆分父页面别名。/用于显示子页面的子页面别名
    post_parent => 1, //(整数) - 页面id,仅返回到子页面,仅对包含子页面的页面有效
    post__in => array(1,2,3), //(数组) - 须展示的物品id
    post__not_in => array(1,2,3), //(数组) - 须排除的物品id
    //注意:不能在同一查询中同时使用。 post__in 和 post__not_in

/**

  • 文章类型 & 状态参数 - 在某些文章类型中显示文章
    */
    post_type => array( //(字符串/ 数组) - 文章类型,根据文章类型获取文章,默认为post
    post, // - 文章
    page, // - 页面
    revision, // - 文章版本
    attachment, // - 附件,默认 WP_Query 已设置发布状态。 post_status=>published, 但是,附件是缺省的 post_status=>inherit,因此您需要设置状态。 inherit 或any.
    my-post-type, // - 自定义文章类型 (例如:movies)
    ),
    post_status => array( //(字符串 / 数组) - 使用文章状态根据文章状态获取文章,默认为 publish
    publish, // - 已发表的文章或页面
    pending, // -待审物品
    draft, // - 草案中的条款
    auto-draft, // - 自动保存为草稿的文章
    future, // - 定期发表的文章
    private, // - 未登录的用户无法查看的私人文章
    inherit, // - 版本. 具体参考 get_children.
    trash // - 回收站中的文章 (2.9和更高版本可用).
    ),

//注意:The any 关键字可用于 post_type 和 post_status 查询,但不能在数组中使用。
post_type => any, // - 获取除Version和项目类型参数以外的所有项目类型的项目。exclude_from_search设置为true文章的类型
post_status => any, // - 获取所有项目状态的项目,但版本和项目类型参数除外。exclude_from_search设置为true文章的类型

/**

  • 分页参数
    */
    posts_per_page => 10, //(整数) - 每页显示的文章数量 (2.1和更高版本可用), 使用posts_per_page=-1 显示所有文章,如果查询在提要中,WordPress用 posts_per_rss 该选项将覆盖此处的设置。您需要使用此限制并尝试使用它。 post_limits 过滤器,或使用 pre_option_posts_per_rss筛选器返回 -1
    posts_per_archive_page => 10, //(整数) - n每页显示的文章数量 - 仅用于归档页面,包含在归档页面和搜索结果页面上 showposts 和 posts_per_page 参数
    nopaging => false, //(布尔值) - 在一页上显示所有文章或使用分页,缺省值为 false, 使用分页
    paged => get_query_var(paged), //(整数) - 页数,分页时显示哪一页
    //注:使用 get_query_var(page); 如果查询在设置为主页的页面模板中工作,则查询参数 page 在内容中使用文章分页或使用 对快捷方式代码进行分页。

/**

  • 偏移参数
    */
    offset => 3, //(int) - 跳过的文章数量

/**

  • 排序 & 排序方法参数 - 对所获得的物品进行分类
    */
    order => DESC, //(字符串) - 设置 order_by 参数按升序或降序排列。. 默认为DESC.
    //Possible Values:
    //ASC - 升序,从小到大 (1, 2, 3; a, b, c).
    //DESC - 降序,从大到小 (3, 2, 1; c, b, a).
    orderby => date, //(字符串) - 排序依据. 默认为 date.
    //可用的参数包括://
    //none - 不排序 (2.8和更高版本可用)
    //ID - 根据ID分类、注解ID是大写的
    //author - 按作者排序
    //title - 按标题排序
    //date - 按发布时间排序
    //modified - 按上次修改时间排序
    //parent - 按父页面排序
    //rand - 随机排序
    //comment_count - 按评论数量排序 (2.9和更高版本可用).
    //menu_order - 按页码排序. 通常用在页面中 (编辑页面时有一个页面序列号字段) 和附件 ( 插入 / 在媒体相册对话框中上传号码), 但是,不能分析文章的类型 menu_order 使用数值 (默认都为 0).
    //meta_value - 注意meta_key=keyname 还必须出现在查询中. 注意,排序是按字母顺序进行的。(如:words),但数字排序可能会有问题 (如:1, 3, 34, 4, 56, 6, etc, 不是你想要的:1, 3, 4, 6, 34, 56)。
    //meta_value_num - 根据数字meta值排序 (2.8和更高版本可用). 同时需要注意的是meta_key=keyname 还可以在查询中声明。该值和 meta_value 同样,除了值允许数字排序之外。
    //title menu_order - 同时使用 menu_order 和 title 排序 有关更多信息,请参阅:http://wordpress.stackexchange.com/questions/2969/order-by-menu-order-and-title
    //post__in - 使用 post__in 在阵列中配制 ID 顺序 (3.5在更高版本中可用).

/**

  • 顶级文章参数 - 显示或忽略热门文章
    */
    ignore_sticky_posts => false, //(布尔值) - 是否忽略排名靠前的文章,默认为FALSE且不忽略. 忽略退回文章开头的内容/排除热门文章,但排名靠前的文章仍将在自然查询中列出。
    //注:有关机顶盒文章的更多信息,请参阅:http://codex.wordpress.org/Class\_Reference/WP\_Query#Sticky\_Post\_Parameters

/**

  • 时间参数 - 在一定时间内展示文章
    */
    year => 2012, //(int) - 4 数字的年份 (如:2011)
    monthnum => 3, //(int) - 月份数字 (从 1 到 12)
    w => 25, //(int) - 一年中的星期 (从 0 到 53), 使用 MySQL WEEK 命令、此模式和"start_of_week" 选项相关
    day => 17, //(int) - 一个月中的天数 (从 1 到 31)
    hour => 13, //(int) - 小时 (从 0 到 23).
    minute => 19, //(int) - 分钟 (从 0 到 60).
    second => 30, //(int) - 秒 (从 0 到 60).

/**

  • 自定义字段参数 - 显示带有自定义域的文章
    */
    meta_key => key, //(字符串) - 自定义字段的键。。
    meta_value => value, //(字符串) - 自定义字段的值。。。
    meta_value_num => 10, //(数字) - 自定义字段的值。。。
    meta_compare => =, //(字符串) - 测试meta_value的操作。可用值包括!=, >, >=, <, or =. 默认为 =.
    meta_query => array( //(数组) - 自定义字段参数 (3.1和更高版本可用).
    array(
    key => color, //(字符串) - 自定义字段的键。。
    value => blue, //(字符串/数组) - 自定义字段的值。。。 (注意:对数组的支持仅限于一个比较值: IN, NOT IN, BETWEEN, or NOT BETWEEN)
    type => CHAR, //(字符串) -自定义字段类型,可用值包括:NUMERIC, BINARY, CHAR, DATE, DATETIME, DECIMAL, SIGNED, TIME, UNSIGNED,默认为    CHAR
    compare => = //(字符串) - 测试的操作,可用值包括: =, !=, >, >=, <, <=, LIKE, NOT LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN. 默认为:=
    ),
    array(
    key => price,
    value => array( 1,200 ),
    compare => NOT LIKE
    )

/**

  • 权限参数 - 显示已发表的文章,如果用户有正确的权限,相同的现实私密文章。:
    */
    perm => readable //(字符串) 可用值包括:readable, editable (我可能还没有测试过其他可用的值。)

/**

  • 与缓存相关的参数
    */
    no_found_rows => false, //(布尔值) 缺省值为FALSE,对于寻呼,WordPress 用于大多数查询 SQL_CALC_FOUND_ROWS 查询, 即使您不需要分页,通过将此参数设置为True,我们也告诉WordPress不要查询数据总行数,从而降低数据库负载,如果设置了这个参数为真,分页将不工作,有关更多信息,请参阅:http://flavio.tordini.org/speed-up-wordpress-get\_posts-and-query\_posts-functions
    cache_results => true, //(布尔值) 默认为真
    update_post_term_cache => true, //(布尔值) 默认为真
    update_post_meta_cache => true, //(布尔值) 默认为真
    //注意:缓存是个好东西,通常不建议设为假,有关更多信息,请参阅:http://codex.wordpresorg/Class\_Reference/WP\_Query#Permission\_Parameters

/**

/**

  • 项目字段参数
    */
    //关于项目字段参数信息,请参考http://codex.wordpress.org/Class_Reference/WP_Query#Post_Field_Parameters

/**

);

$the_query = new WP_Query( $args );

// 循环开始
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post();
// 输出内容
endwhile;
endif;

// 重置文章数据
wp_reset_postdata();

?>

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门