Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >WordPress 文章查询教程6:如何使用排序相关的参数

WordPress 文章查询教程6:如何使用排序相关的参数

作者头像
Denis
发布于 2023-04-13 05:31:46
发布于 2023-04-13 05:31:46
1.9K00
代码可运行
举报
文章被收录于专栏:WordPress果酱WordPress果酱
运行总次数:0
代码可运行

WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。

「WordPress果酱」将通过一系列教程讲解如何使用 WP_Query 进行 WordPress 文章查询。

我写这一系列文章的目的也是为了方便自己使用这些参数的时候方便查询,所以如果你也是经常进行 WordPress 二次开发的话,建议收藏本文。

第六讲关于排序相关的参数,排序相关的参数就是 orderorderby 两个参数,但是值比较多比较多:

首先是 order 参数,数据类型为:(string | array),用于指定 “orderby” 参数的升序或降序,默认为”DESC”,即为降序,如果是数组的话,可用于多个 order/orderby 集:

  • ASC – 升序,从最低值到最高值 (1, 2, 3; a, b, c)
  • DESC – 降序,从最高值到最低值 (3, 2, 1; c, b, a)

然后是 orderby 参数,数据类型为:(string | array),按参数对检索到的文章进行排序。默认为:date (post_date)。可以传递一个或多个选项:

  • none – 无顺序
  • ID – 按文章 ID 排序,注意 ID 是大写的。
  • author – 按文章作者排序。
  • title – 按文章标题排序
  • name – 按文章名称排序,即 URL别名。
  • type – 按文章类型排序。
  • date – 按文章发布日期排序。
  • modified – 按文章修改日期排序。
  • parent – 按文章或页面的父 ID 排序
  • rand – 随机排序
  • comment_count – 按文章评论数排序
  • relevance – 按相关性排序,根据以下顺序按搜索词排序:首先是否匹配整个句子,其次如果所有搜索词都在标题内,第三是否有任何搜索词出现在标题中,第四是否完整的句子出现在内容中。
  • menu_order – 按照页面的顺序排序。常用于页面(排序字段在页面编辑页面的「页面属性」框中),也可用于具有不同 menu_order 值的任何文章类型(默认值都是 0)。
  • meta_value – 按照自定义字段排序,请先确保在查询中已经设置了 meta_key,额外要注意,是按字母顺序排列的,这对于字符串来说没有问题,但对于数字可以结果不是你预期的,(例如结果是 1、3、34、4、56、6 ,而不是 1、3、4、6、 34, 56)。如果要按照数字排序,请使用 meta_value_num 代替数值。如果要将自定义字段的值转换为特定类型之后再排序,可以通过指定 meta_type 来实现,可以这些类型:NUMERIC, BINARY, CHAR, DATE, DATETIME, DECIMAL, SIGNED, TIME, UNSIGNED。也可以使用 meta_value_* 来指定,例如转换为 DATETIME 类型时,也可以使用 meta_value_datetime 来作为 orderby 参数。
  • meta_value_num – 按照数字类型的自定义字段排序。
  • post__in – 按照 post__in 参数中给出的文章 ID 顺序进行排序,注意使用 post__inorder 参数的值无效。
  • post_name__in – 按照 post_name__in 参数中给出的文章名称(URL别名)顺序进行排序,同样这时候 order 参数的值无效。
  • post_parent__in – 按照 post_parent__in 参数中给出的文章父 ID 顺序进行排序,同样这时候 order 参数的值无效。

按照文章标题降序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$args = array(
    'orderby' => 'title',
    'order'   => 'DESC',
);
$query = new WP_Query( $args );

先按照「页面顺序」排序,然后再按文章标题,降序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$args = array(
    'orderby' => 'menu_order title',
    'order'   => 'DESC',
);
$query = new WP_Query( $args );

随机显示一遍文章:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$args = array(
    'orderby'        => 'rand',
    'posts_per_page' => '1',
 
);
$query = new WP_Query( $args );

按照评论数排序(最受欢迎):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$args = array(
    'orderby' => 'comment_count'
);
$query = new WP_Query( $args );

获取按照价格自定义字段排序的商品:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$args = array(
    'post_type' => 'product',
    'orderby'   => 'meta_value_num',
    'meta_key'  => 'price',
);
$query = new WP_Query( $args );

按照标题降序,页面顺序升序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$args = array(
    'orderby' => array( 'title' => 'DESC', 'menu_order' => 'ASC' )
);
$query = new WP_Query( $args );

按照数字类型自定义字段降序,标题升序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$args = array(
    'orderby'  => array( 'meta_value_num' => 'DESC', 'title' => 'ASC' ),
    'meta_key' => 'age'
);
$query = new WP_Query( $args );

获取 my_custom_post_type 的文章,按照数字自定义字段 age 排序,并通过 meta_query 过滤数据只显示 age 为:3-4 的数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$args = array(
    'post_type'  => 'my_custom_post_type',
    'meta_key'   => 'age',
    'orderby'    => 'meta_value_num',
    'order'      => 'ASC',
    'meta_query' => array(
        array(
            'key'     => 'age',
            'value'   => array( 3, 4 ),
            'compare' => 'IN',
        ),
    ),
);
$query = new WP_Query( $args );

如果要通过两个自定义字段来排序,比如先通过 city 升序 然后 province 降序,这时候就需要通过「命名的 meta 查询」(named meta queries)来组合并链接 meta_queryorderby 数组:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$q = new WP_Query( array(
    'meta_query' => array(
        'relation' => 'AND',
        'province_clause' => array(
            'key' => 'province',
            'value' => '广东省',
        ),
        'city_clause' => array(
            'key' => 'city',
            'compare' => 'EXISTS',
        ), 
    ),
    'orderby' => array( 
        'city_clause' => 'ASC',
        'province_clause' => 'DESC',
    ),
) );
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
WordPress 4.0 WP_Query 引入更强大的 Order By
WP_Query 的 orderby 参数用于告诉获取的 Posts 是基于哪列进行排序的,默认是 post_date,并且 WP_Query 的默认排序顺序是降序,就是最新发布的日志排在前面。
Denis
2023/04/15
2550
query_posts函数使用方法小结|wordpress技巧
  query_posts是wordpress非常好用的调用文章函数,可以调用某个分类、标签、日期及作者等不同范围的文章列表。下面随ytkah一起来看看query_posts函数使用方法小结
ytkah
2019/10/24
1K0
WordPress自定义查询WP_Query使用方法大全
  自定义调用文章在网站建设中很常用,wordpress也很人性化,用新建查询new WP_Query就能实现相关功能。WP_Query怎么用呢?随ytkah一起来看看吧
ytkah
2019/12/25
4.6K0
自定义WordPress 标签云小工具相关参数
相信你知道WordPress 标签云widget(小工具)是什么,如果你的WordPress 主题支持小工具,就可以在后台启用标签云小工具,该小工具不仅能展示标签也能展示分类目录。其默认的参数对于一些特别的主题来说可能不是那么合适。还好WordPress 官方提供了widget_tag_cloud_args 这个过滤器(filter)来让开发者在不改动WordPress 核心文件的基础上自定义相关显示参数。 相关函数: WordPress 官方文档:wp_tag_cloud(标签云) 在WordPres
Jeff
2018/01/19
1.7K0
WordPress 技巧:WP_Query 如何同时使用 meta_key 和 ID 或 date 进行排序
我们使用 WP_Query 进行文章检索的时候,可以用使用 orderby 参数对检索到的文章进行排序,比如使用 ID 排序
Denis
2023/04/15
5760
10个WordPress的query_posts语句使用技巧
Query_posts语句是WordPress最实用的语句之一。 正是在query_posts的作用下,WordPress的Loop循环才能够调用并显示所有文章内容。 Query_posts的魅力在于,它可以根据你的要求,通过各种各样的方式灵活地检索并过滤日志或页面。你可以用query_posts进行简单的文章抓取,可以只抓取一篇,也可以抓取上百篇。 而说到复杂点的用法,你甚至可以利用query_posts来查询某一分类目录下某个作者发表的、带有某个标签的特定数量文章等。下面介绍的是一些更实用的用法。
主机教程网2bcd.com
2022/11/28
9270
10个WordPress的query_posts语句使用技巧
修改 WordPress 文章默认排序的方法
我们用 wordpress 发布文章时,会用到一个希望把指定某一篇或者几篇文章置顶首页的功能,而不是 wordpress 默认的按照发布时间降序排列,也就是说按照我的想法文章排序第一、第二、第三、第四
魏艾斯博客www.vpsss.net
2018/06/01
3K1
全部WordPress查询数组参考
WordPress输出内容时用到最多的就是$args =array( 这个查询数组,这篇文章给大家分享所有的,WordPress查询综合参考
小颖club
2022/04/12
8200
WordPress JSON REST API简单介绍及使用
这个插件(WordPress JSON REST API (WP API))提供了一个易于使用的REST API,让我们可以通过HTTP获取简单方便的JSON格式的数据,这些数据包括用户,文章,分类等等。获取或更新数据非常简单,只需要发送一个HTTP请求就可以了。
kl博主
2023/11/17
1.6K0
WP_Query 的所有参数
WP_Query 是 WordPress 的核心,它支持的参数非常灵活,也非常多,官方的文档也略嫌啰嗦,整理把所有的参数都整理了一遍,以后要使用 WP_Query 只要看这份文档就够了:
Denis
2023/04/15
5710
WordPress 文章查询教程9:如何使用自定义字段(post meta)参数
在 WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。
Denis
2023/04/13
1.4K0
WordPress 文章查询教程10:如何使用权限和缓存参数
在 WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。
Denis
2023/04/13
5070
wordpress独立站首页调用产品的三种方法
在WordPress独立站中,展示最新产品、最热门产品和推荐产品是吸引用户和促进销售的重要手段。以下是三种实现这些功能的方法:
WordPress爱好者
2024/11/16
6320
wordpress独立站首页调用产品的三种方法
woocommerce shortcode短代码调用
WooCommerce配备了很多shortcode短代码(简码),可以直接在post帖子和page页面内插入内容,方便展示产品、分类等。比如直接在文章编辑时直接插入[products],或者在php文
ytkah
2023/03/14
12.9K0
woocommerce shortcode短代码调用
wordpress调用指定类型post_type的文章
  wordpress很强大,可以添加多种post_type文章类型,假如我们要调用product产品模型的文章要如何操作呢?随ytkah一起来看看吧。我们用'post_type' => 'product'进行指定,代码如下
ytkah
2019/11/13
7380
wordpress调用指定分类除外的置顶文章
我们有时需要根据实际需要进行一些设置,比如wordpress调用指定分类除外的置顶文章,如何实现呢?随ytkah一起来看看吧,用如下代码插入到需要调取的位置
ytkah
2019/10/29
5560
WordPress 内置的数组处理相关函数大全
我们使用 WordPress 开发的时候,有很大一部分的工作和数组处理有关,WordPress 本身也内置了一些非常方便的数组处理函数,今天给大家罗列一下,也方便自己以后写代码的时候查询。 🙂 wp_parse_args wp_parse_args($args, $defaults=[]) 将用户定义的参数(args)合并到默认的参数(defaults)中,用户自定义的参数可以是数组,也可以是对象,甚至支持链接地址查询类型的字符串(比如:"id=5&status=draft")。 $args = wp_pa
Denis
2023/04/13
1.5K0
Wordpress中文章的特色图像Featured Image究竟存在哪里?
最近项目需要,分析了一下Wordpress的特色图像 Feature Image的上传、保存方式,这一分析觉得Wordpress的数据结构设计还真是有想法。
大江小浪
2019/02/22
1.7K0
Wordpress中文章的特色图像Featured Image究竟存在哪里?
为了性能极限考虑,WordPress 6.2 弃用 get_page_by_title() 函数
WordPress 6.1 的时候通过提高 WP_Query 查询性能真正实现站点 0 SQL,现在 WordPress 6.2 将性能要求做到更加极致,将弃用 get_page_by_title() 函数,建议开发者直接使用 WP_Query 根据标题获取页面。
Denis
2023/04/13
3620
WordPress SQL含义讲解
特殊说明: 以上文章,均是我实际操作,写出来的笔记资料,不会盗用别人文章!烦请各位,请勿直接盗用!转载记得标注来源!
收心
2022/02/17
3700
推荐阅读
相关推荐
WordPress 4.0 WP_Query 引入更强大的 Order By
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验