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

在WordPress get_posts()中按自定义meta_键排序,并包括没有meta_键的帖子

江嘉悦
2023-03-14

我已经在我的WordPress帖子上设置了一个名为“my_sort”的自定义元,它有一个像1、2、3、4这样的数值。。。。。见下图:

我想按这个元“my_sort”的升序排序。这是我正在应用的以下代码:

<?php 
    $catPost = get_posts(array('category' => get_cat_ID($categories[0]->name), 'meta_key' => 'my_sort', 'orderby' => 'meta_value_num', 'order' => 'ASC', 'numberposts' => 100)); //change this
  ?>

这个代码的问题是,它正在工作,但有一个问题,我需要修复。

它留下了所有其他没有“我的排序”元的帖子。我想包括这些职位也。我想:

  1. 首先,具有“my_sort”的帖子必须按升序排列

使现代化

当我尝试下面的查询时。

$catPost = get_posts( 
        array (
            'category' => get_cat_ID($categories[0]->name), 
            'numberposts' => 100, 
            'orderby' => 'meta_value_num', 
            'meta_type' => 'NUMERIC',
            'order' => 'ASC', 
            'meta_query' => array(
                'relation' => 'OR',
                array(
                   'key'=>'my_sort',
                   'compare' => 'EXISTS'         
                ),
                array(
                    'key'=>'my_sort',
                    'compare' => 'NOT EXISTS'         
                )
            ),
        )
      );

我没有得到正确的结果。请参见显示结果的图像。

这里:

记录1:没有“my_sort”元。

记录2:有“my_sort”,其值为2。

记录3:没有“my_sort”元。

记录4:有“my_sort”元,其值为4。

这种情况下的结果应该是这样的:

Record2然后Record4然后Record1然后Record4,但显然情况并非如此。

怎么了?

共有1个答案

赵镜
2023-03-14

如果您想按可能没有任何值的元键进行排序,您需要使用一个meta_query,它将搜索带有键的帖子的结果和搜索没有键的帖子的结果结合在一起。

这还没有测试,但是主要的逻辑是存在的:

$catPost = get_posts( 
    array (
        'category' => get_cat_ID($categories[0]->name), 
        'numberposts' => 100, 
        'orderby' => 'meta_value_num', 
        'meta_type' => 'NUMERIC',
        'order' => 'ASC', 
        'meta_query' => array(
            'relation' => 'OR',
            array(
               'key'=>'my_sort',
               'compare' => 'EXISTS'         
            ),
            array(
                'key'=>'my_sort',
                'compare' => 'NOT EXISTS'         
            )
        ),
    )
);
 类似资料:
  • 我有值和像0,1,然后我将使用降序获取数据使用以下查询。 但它只按降序显示。如果我使用另一个查询,如: 它只显示特色结果。我需要所有的广告帖子,按照

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

  • 我想在一个帖子查询中返回每个帖子的元值总数。 因此,例如,我查询以获取具有自定义文章类型的参数的文章,并且作者是当前作者。这一部分很容易——返回实际的帖子,也可以统计帖子。但是我想从查询中的每个帖子中计算一个元值,并返回一个总数。meta值是一个统计该帖子被偏爱多少次的值。元键是“simplefavorites_count”,我在这里使用这个插件作为参考: https://favoritepost

  • 尝试逐步将一些Perl脚本转换为Raku。即使在这里浏览了大量内容并深入阅读了《学习Perl6》之后,我仍然坚持下面的一条。 我无法取得进展的部分是最后一个循环(转换为);获取键并按月名和日号排序看起来是不可能的,但我确信这是可行的。 任何关于如何用“惯用的”语法实现这一点的提示都是非常受欢迎的。

  • 可以在 Illustrator 中使用键盘快捷键来提高工作效率。可以使用 Illustrator 中包含的默认快捷键,或添加和自定所需的快捷键。 在 Illustrator 中,可以查看所有快捷键的列表,还可以编辑或创建快捷键。键盘快捷键对话框作为快捷键编辑器,包括所有支持快捷键的命令,其中一些未在默认快捷键集中提到。 您可以定义自己的快捷键集,更改快捷键集中的个别快捷键以及在快捷键集之间切换。例

  • Photoshop 允许您查看所有快捷键的列表,并编辑或创建快捷键。“键盘快捷键”对话框充当一个快捷键编辑器,并包括所有支持快捷键的命令,其中一些是默认快捷键组中没有提到的。 注意:除了使用键盘快捷键之外,您还可以使用与现用工具、选区或面板关联的上下文相关菜单来访问许多命令。要显示上下文相关菜单,请在文档窗口或面板中单击鼠标右键。 定义新的键盘快捷键 执行下列操作之一: 选取“编辑”>“键盘快捷键