2011-08-31 45 views
0

我的客户有一个网站列出不同的帆船服务。这些服务都有不同程度的订阅:WordPress的 - 根据自定义字段的值和按字母顺序排列帖子

  • 免费
  • 高级
  • 全部

在后端,我一直在使用先进的自定义字段(这很好地工作作为建立一些自定义字段正常的WP自定义字段)。该服务的自定义字段被称为“subscription_level”,它是一个包含上述选项的下拉列表。

我想要实现的是按照订阅级别和按字母顺序显示帖子。首先,您将拥有按标题排序的所有“完整”服务,然后是“高级”,然后是“免费”服务。

像:

----全部---

全面服务A

全面服务B

全面服务C

----高级 - -

高级服务A

高级服务B

高级服务C

---- ---免

免费服务A

免费服务B

免费服务C

理想情况下,这也应该有分页,但如果这是不可能的,这不是工作的结束LD。

我通过查看Codex指令尝试了几个自定义选择查询,但运气不佳。我的问题是我需要两种“orderby”方式?根据我的自定义字段“subscription_level”的meta_value划分帖子,同时按title排序每个级别的订阅......我似乎无法找到实现此目的的方法。

任何想法指向我在正确的方向将是真棒!

在此先感谢

回答

0

希望我理解这个问题:

  • 你有一个post_type“服务”(或这实际上是你的标准的职位)
  • 每个服务都有一个订阅级别例如存储在自定义字段中的“免费”,“高级”或“全部”

因此,首先要做的是将帖子分类到这些级别。

之后,在这些级别内,帖子应根据其标题(或其他)进行排序。

我不确定使用一个自定义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_in'阵列或其他自定义SQL查询WP_QUERY。

根据什么样的,你要使用分页的,有你如何能以简单的方式整合自己的自定义分页博客文章:

http://www.blackbam.at/blackbams-blog/2011/07/18/implementing-a-simple-and-flexible-paging-algorithm-using-php/

希望这有助于。

相关问题