我的客户有一个列出不同航行服务的网站。这些服务具有不同级别的订阅:
在后端,我使用高级自定义字段设置了一些自定义字段(与普通WP自定义字段完美配合)。该服务的自定义字段称为“subscription_level”,它是一个带有上述选项的下拉列表。
我想要实现的是按照订阅级别的顺序显示帖子,并按字母顺序显示。首先,您将按标题排序所有“完整”服务,然后是“高级”,然后是“免费”服务。
像:
---- Full ---
全程服务A
全面服务B
全面服务C
---- Premium ---
高级服务A
高级服务B
高级服务C
----自由---
免费服务A
免费服务B
免费服务C
理想情况下,这也应该有分页,但如果这不可能,那就不是世界末日。
我通过查看Codex指令尝试了几个自定义选择查询,没有运气。我的问题是我需要两种“orderby”方式?一个根据我的自定义字段“subscription_level”的meta_value划分帖子,同时根据标题命令每个级别的订阅......我似乎无法找到实现此目的的方法。 / p>
任何指向我正确方向的想法都会很棒!
提前致谢
答案 0 :(得分:0)
希望我理解这个问题:
所以要做的第一件事就是将帖子分类到这些级别。
之后,在这些级别内,帖子应根据其标题(或其他)进行排序。
我不确定使用一个自定义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,例如。
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_in'数组或其他自定义SQL查询运行WP_QUERY,您可以按标题或新值对所收集的帖子进行排序。
根据您要使用的分页类型,有一篇博文介绍如何以简单的方式集成自定义分页:
希望这有帮助。