1

我有一个帖子页面的查询。

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

$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 会更容易吗?如果是这样,我该怎么做。

更新

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

4

1 回答 1

0

关于您的最后一个请求 - 一种在所有帖子上添加 meta_key(自定义字段)的方法,即使它留空:

我经常使用插件自定义字段模板来处理这种事情。它类似于您正在使用的(更多字段),但它为您提供了多种使用字段的可能性,最重要的是,对于这种情况,您可以调整隐藏字段和默认值。如果留空,您也许可以设置一个 default=' '(空格)以插入该字段。或者,做更多的工作,修改插件代码以将所有字段插入数据库,而不检查值是否为空。在 CustomFieldsTemplate 的情况下,应该不难做到。

于 2011-03-26T14:57:31.270 回答