我对一页帖子有一个查询。
它根据自定义post类型和自定义字段值返回结果。现在,我增加了基于另一个自定义字段排序结果的能力。
$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') ) ) );我遇到了点小麻烦。我是通过一个名为“超长”的自定义字段来排序结果的,但是如果post不包含“超长”的值,它就被排除在结果之外。
我想知道如何更改我的代码,使其包含没有orderby值的帖子。
也只是想了个解决办法,但不知道怎么做。我正在使用一个名为“更多字段”的插件来创建我的自定义字段。是否更容易检查“超长”字段是否为空,并将其设置为0?如果是这样,我该怎么做呢?
更新
我已经进一步研究过这个问题了。如果“超长”没有值,则自定义字段似乎不会添加到数据库中的wp_postmeta中。如果我给一个post一个超长的值,然后返回并删除它,实际上它包括在我的查询中的结果,因为数据库中仍然存在这个字段。那么,如果这个自定义字段有值或没有值,如何将其输入数据库?
发布于 2011-03-26 14:57:31
关于您的最后一个请求-关于在所有帖子中添加meta_key (自定义字段)的方法,即使它是空的:
我经常用插件自定义字段模板来做这类事情。它类似于您正在使用的字段(更多字段),但它为您提供了许多使用字段的可能性,最重要的是,在这种情况下,您可以调整隐藏字段和默认值。您也许可以设置一个default=‘’(空格),如果字段为空,则插入该字段。或者,通过更多的工作,修改插件代码,将所有字段插入到DB中,而不检查是否为空值。就CustomFieldsTemplate而言,要做到这一点应该不难。
https://stackoverflow.com/questions/5420232
复制相似问题