Wordpress-根据自定义字段的值和字母顺序对帖子进行排序

Wordpress-根据自定义字段的值和字母顺序对帖子进行排序,wordpress,select,custom-fields,Wordpress,Select,Custom Fields,我的客户有一个网站列出了不同的航海服务。这些服务具有不同的订阅级别: 自由的 保险费 满的 在后端,我使用高级自定义字段设置了一些自定义字段,这些自定义字段与普通WP自定义字段一样完美。该服务的自定义字段称为subscription_level,它是一个包含上述选项的下拉列表 我试图实现的是按照订阅级别和字母顺序显示帖子。因此,首先,您将获得所有按标题排序的完整服务,然后是高级服务,然后是免费服务 比如: --满满的-- 全方位服务 全方位服务B 全方位服务 --溢价-- 优质服务A 优质服务B

我的客户有一个网站列出了不同的航海服务。这些服务具有不同的订阅级别:

自由的 保险费 满的 在后端,我使用高级自定义字段设置了一些自定义字段,这些自定义字段与普通WP自定义字段一样完美。该服务的自定义字段称为subscription_level,它是一个包含上述选项的下拉列表

我试图实现的是按照订阅级别和字母顺序显示帖子。因此,首先,您将获得所有按标题排序的完整服务,然后是高级服务,然后是免费服务

比如:

--满满的--

全方位服务

全方位服务B

全方位服务

--溢价--

优质服务A

优质服务B

优质服务

--免费的--

免费服务A

免费服务B

免费服务

理想情况下,这也应该有分页,但如果这是不可能的,这不是世界末日

我已经通过查看Codex指令尝试了几个自定义select查询,但运气不佳。我的问题是我需要两种订购方式?一个根据“我的自定义字段订阅”级别的meta_值划分帖子的方法,同时一个根据标题对每个级别的订阅进行排序的方法。。。而我似乎找不到实现这一目标的方法

任何能为我指明正确方向的想法都会很棒


提前感谢

希望我能理解这个问题:

你有一个post_类型的服务,或者这实际上是你的标准帖子 这些服务中的每一项都有一个订阅级别,如免费、高级或完全,存储在自定义字段中 因此,首先要做的是将这些职位划分为这些级别

之后,在这些级别内,应根据职位或其他职位进行排序

我不确定使用一个自定义SQL查询是否容易实现这一点。它假设是这样的:

SELECT * FROM wp_posts,wp_postmeta.meta_value INNER JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id WHERE wp_posts.post_status='publish' AND wp_postmeta.meta_key = "service" ORDER BY wp_postmeta.meta_value, wp_posts.post_title, ASC
但如果这变得复杂,你可以选择另一种方式来实现这个目标。收集所有全职服务岗位的ID、所有高级服务岗位的ID和所有免费服务岗位的ID,f.e

SELECT wp_posts.post_ID FROM wp_posts INNER JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id WHERE wp_postmeta.meta_key = "service" and wp_postmeta.meta_value="premium"
对每种服务都要这样做

然后,使用“posts\u in”数组运行WP\u查询,或者运行另一个自定义SQL查询,在该查询中,您可以按标题或新值对收集的帖子进行排序

根据您希望使用的分页类型,有一篇博客文章介绍了如何以简单的方式集成自定义分页:

希望这有帮助