如何知道Get_Posts()是否失败?

时间:2019-02-16 作者:Brada

因此,我看到get\\u posts()函数返回一个post数组。

如果有帖子,它将返回一个帖子数组。

如果没有帖子,它将返回一个空数组()。

如果有帖子,但数据库查询失败(比如说,99.999%的次数返回正确,但这次由于某种原因失败),它将返回一个空数组。(重要提示:我不确定这一点,这是我在阅读此函数的工作原理时所理解的)。

我的问题是:如果我使用这个函数,什么时候才能知道函数是否失败?(就像有些函数返回WP\\U错误一样。)

1 个回复
最合适的回答,由SO网友:birgire 整理而成

这里有一种方法可以检查get_posts():

global $EZSQL_ERROR;

$before = isset( $EZSQL_ERROR ) ? count( $EZSQL_ERROR ) : 0;
$posts  = get_posts( $args );
$after  = isset( $EZSQL_ERROR ) ? count( $EZSQL_ERROR ) : 0;

if ( empty( $posts ) && $before < $after ) {
    // ... DB error(s) within get_posts() when it returns an empty array.
}
这里我们检查wpdb 之前和之后的错误get_posts() 来自全球的呼叫$EZSQL_ERROR 错误收集器(src).

但我可以想象,在某些情况下,这可能会给出误报,例如,如果我们在get_posts() 这可能不是空posts数组的原因。

更新。我测试了一下,发现$wpdb->last_error 在每次$wpdb 呼叫我注意到全球$EZSQL_ERROR 大堆within wpdb::print_error() 不会恢复,但会收集错误。因此,我更新了答案并替换了$wpdb->last_error 具有$EZSQL_ERROR.

相关推荐

Group posts by custom field

我正在尝试使用显示所有子页面的列表wp_query 到目前为止,我已经创建了一个函数来检索当前页面的所有子页面,但是我需要按照自定义字段将这些页面排序为两个列表。调用自定义字段type 它是一个具有以下值的选择字段:product 和about 我需要根据字段值将页面列表分为两组,但我似乎无法按自定义字段对其进行分组。我需要输出为:Product - Page 1 - Page 2 - Page 3 About - Page 1 - Page 2&