当前位置: 首页 > 知识库问答 >
问题:

WordPress,使用meta_查询orderby

季城
2023-03-14

我尝试使用多个自定义字段显示结果,同时按第一个自定义字段(startdate)排序结果。我看到的建议让我尝试了以下方法:

$args = array(
    'category_name' => 'Events',
    'posts_per_page' => 6,
    'meta_key' => 'startdate',
    'meta_query' => array(
        'relation' => 'OR',
        array(
            'key' => 'startdate',
            'value' => $date,
            'compare' => '>='
        ),
        array(
            'key' => 'closedate',
            'value' => $date,
            'compare' => '>='
        )
    ),
    'orderby' => 'meta_value',
    'order' => 'desc'
);

问题是,如果没有meta_key参数,结果会默认过滤帖子的日期。当我添加meta_key参数对结果进行排序时,我得到的每一篇文章都有一个meta_key等于开始日期。通过添加这些meta_key参数,语句似乎完全忽略了meta_query数组中的条件。我如何让查询排序的开始日期而不拉所有的职位,meta_key等于开始日期?

共有1个答案

夏侯玄天
2023-03-14

解决方案:

$args = array(
'category_name' => 'Events',
'posts_per_page' => 6,
'meta_key' => 'startdate',
'meta_compare' => '>=',
'orderby' => 'meta_value',
'meta_value' => $date,
'order' => 'DESC',
    'meta_query' => array(
        'relation' => 'OR',
        array(
            'key' => 'startdate',
            'value' => $date,
            'compare' => '>='
       ),
        array(
            'key' => 'closedate',
            'value' => $date,
            'compare' => '>='
        )
    )
);

本质上,meta_key参数在MySQL语句中创建一个连接。连接不受参数meta_query部分所述条件的影响。Codex枚举用于筛选联接的参数。我希望我的结果排序的开始日期为所有日期

 类似资料:
  • 我有3个元字段:日期(日期格式字符串)、位置和顾问。 设置meta_键时,我可以按日期字段拉入POST和orderby: 然而,我无法用更复杂的meta_query来实现这一点: 基本上,我想拉所有的职位,有一个元开始_日期大于今天的日期和顺序由这些日期。 作为一个旁注-你能在说位置键和仍然按日期键进行元查询搜索吗? 任何帮助都很感激...这是我第一次尝试用meta订购,并且找到了一些好的帖子,但

  • 我有值和像0,1,然后我将使用降序获取数据使用以下查询。 但它只按降序显示。如果我使用另一个查询,如: 它只显示特色结果。我需要所有的广告帖子,按照

  • 我有一些问题与WordPress和WP_Query。我想让帖子按meta_query和/或类别过滤,但我有以下问题:第一种类型的帖子有一个名为“类型”的自定义字段,必须用“练习”来填充,帖子必须在一个名为“级别”的类别中(这将在之前设置)。第二类帖子只有名为“类型”的自定义字段,必须用“测试”来填充。 我不知道如何把这两个条件凑在一起。正因为如此,我试图将它分成两个查询,然后合并它,就像这样: 这

  • 我在wp_query,我需要你的帮助。 我有3个自定义字段,分别称为“议程日”、“议程月”、“议程年”,表示事件的日期、月份和年份。 我想按日、月、年顺序排列查询结果。 下面是我的问题: 这不起作用。。。你能解释一下原因并告诉我怎么修理吗? 非常感谢。 编辑 这是已执行的查询(返回结果,但顺序不正确) 选择SQL_CALC_FOUND_ROWSwp_posts。ID从wp_posts离开加入wp_

  • 我尝试做一个mysql查询,从wp_posts中选择所有的帖子,从中选择post_title和post_content,然后选择表wp_postmeta并显示meta_value,其中meta_key等于“_wp_attached_file”。 我试过这样做: 查询应该显示所有的post以及它是否有一个等于'_wp_attached_file'的meta_key。然后show meta_value

  • 我在WordPress数据库中添加了一篇标题为“titleofpost”的帖子。我尝试在PHP7中使用$wpdb get_results,但出现以下错误: 致命错误:未捕获错误:调用未定义的函数mysql\u error()。 什么是错的?任何帮助都很感激。 我使用下面的代码: