按自定义字段排序包括即使为空-wordpress

按自定义字段排序包括即使为空-wordpress,wordpress,sql-order-by,custom-fields,Wordpress,Sql Order By,Custom Fields,我要查询一页帖子 它返回基于自定义帖子类型和自定义字段值的结果。现在,我添加了基于另一个自定义字段对结果排序的功能 $loop = new WP_Query( array ( 'post_type' => 'new', 'orderby' => 'meta_value_num', 'meta_key' => 'over-length', 'meta_query' => array( array( 'key' => 'over-make', 'value' =>

我要查询一页帖子

它返回基于自定义帖子类型和自定义字段值的结果。现在,我添加了基于另一个自定义字段对结果排序的功能

$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') ) ) );
我遇到了一点问题。我通过一个名为“over length”的自定义字段对结果进行排序,但似乎如果一篇文章不包含“over length”的值,它就会被排除在结果之外

我想知道如何修改我的代码,使其包含没有orderby值的帖子

也只是想到了一个解决办法,但不知道如何做到这一点。我正在使用一个名为“更多字段”的插件来创建我的自定义字段。检查“超长”字段是否为空并将其设置为0是否更容易?如果是这样的话,我该怎么做呢

更新


我对这个问题做了进一步的研究。似乎如果没有为“over length”指定值,则自定义字段不会添加到数据库中的wp_postemta中。如果我给一篇文章一个超长值,然后返回并删除它,它实际上会在我的查询中包含结果,因为该字段仍然存在于数据库中。那么,如果这个自定义字段有值或没有值,我如何才能将其输入到数据库中呢?

关于您上一次的请求-关于在所有帖子上添加meta_键(自定义字段)的方法,即使它保留为空:


我经常使用插件来做这类事情。它与您正在使用的类似(更多字段),但它为您提供了许多使用字段的可能性,最重要的是,在这种情况下,您可以调整隐藏字段和默认值。您可以设置默认值=“”(空格),以便在留空时插入字段。或者,再多做一点工作,修改插件代码,将所有字段插入DB,而不检查空值。在CustomFieldsTemplate的情况下,这应该不难做到。

您能确认不包含“超长”meta_值的帖子吗?我想说的是,查询将排除没有meta_键的文章“超长”,但如果它们有没有值的字段,则将包括它们。你是对的。因此,如果字段留空,我如何获取要添加到数据库中的meta_键。如果w meta_键用于排序,并且您的帖子中该值留空,那么您打算如何将其包括在排序中?你能在你提到的只包含没有meta_键的帖子的查询之后运行第二个查询吗?