这里有一种方法可以检查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.