首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带自定义字段的wordpress查询帮助

带自定义字段的wordpress查询帮助
EN

Stack Overflow用户
提问于 2011-03-29 00:43:05
回答 1查看 1.9K关注 0票数 1

我的帖子有一堆自定义字段,目前正在按“超长”排序

我还有另一个自定义字段,叫做"over-lenghtin“。

我想继续对我的帖子进行超长排序,但如果2个帖子在这个字段中有相同的值,我也想按超长排序。

我想知道如何修改我的查询或添加一个函数来执行此操作?

下面是按当前查询

代码语言:javascript
复制
$loop = new WP_Query( array ( 'post_type' => 'new', 'orderby' => 'meta_value_num', 'meta_key' => 'over-length', 'meta_query' => array( array( 'key' => 'over-make', 'value' => 'Doral', 'compare' => 'LIKE') ) ) );

好的,我已经重写了by query来使用$wpdb->get_result,但我仍然对如何按2个不同的自定义字段排序感到有点困惑。

下面是我的新查询:

代码语言:javascript
复制
$wpdb->get_results("SELECT * FROM $wpdb->posts, wp_postmeta  WHERE wp_posts.ID = wp_postmeta.post_id AND wp_posts.post_status = 'publish' AND wp_posts.post_type = 'new' AND wp_postmeta.meta_value = 'Doral' ORDER BY");

现在我需要按我的自定义字段“超长”排序,然后“超长”排序。

我现在似乎可以正常工作了,下面是我的最后一个问题:

代码语言:javascript
复制
$wpdb->get_results("SELECT * FROM $wpdb->posts 
LEFT JOIN $wpdb->postmeta AS overlength ON(
$wpdb->posts.ID = overlength.post_id
AND overlength.meta_key = 'over-length'  
)
LEFT JOIN $wpdb->postmeta AS overlengthin ON(
$wpdb->posts.ID = overlengthin.post_id
AND overlengthin.meta_key = 'over-lengthin'  
)
LEFT JOIN $wpdb->postmeta AS overmake ON(
$wpdb->posts.ID = overmake.post_id
AND overmake.meta_key = 'over-make'  
)
WHERE wp_posts.post_status = 'publish' AND wp_posts.post_type = 'new' AND overmake.meta_value = 'Doral' ORDER BY 0+overlength.meta_value DESC, 0+overlengthin.meta_value  DESC");
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-29 00:58:55

老实说,当涉及到多个自定义字段时,最简单的解决方案是使用$wpdb->get_results而不是WP_Query。

您可以使用以下命令获取当前执行的查询

代码语言:javascript
复制
echo $GLOBALS['wp_query']->request;

然后,只需更新SQL并按照以下步骤从此处创建修改后的循环:

  • Displaying Posts Using a Custom Select Query | Wordpress COdex
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5462239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档