web-dev-qa-db-fra.com

Erreur de débogage 'L'objet de la classe WP_Query n'a pas pu être converti en int'

Je vois le PHP erreur de notification;

Notice: Object of class WP_Query could not be converted to int in G:\.....\property-search-form.php on line 350

Sur cette ligne, une méta-requête crée un nouvel ensemble de résultats WP_Query à l'aide du code;

$results = new WP_Query( $args );

if(($results == 0) || ($results == false) || ($results == NULL) || !is_object($results) || !($results->have_posts())) {
    return $results;
    }
else {
    return $results;
    }

Je comprends que le résultat final $ est un nombre. Lorsque je l’ai exécuté avec 9 résultats correspondants et utilisé print_r pour afficher les résultats qu’il renvoie 9, je ne sais pas trop ce que signifie cette erreur ni comment le résoudre.

2
Naz

Le problème si votre conditionnel tente de convertir un objet en éléments qui ne peuvent pas être convertis. WP_Query retourne un WP_Query Object donc lorsqu'il est testé par rapport à Object == 0 - il tente de convertir l'objet en nombre lors de la comparaison mais ne peut pas.

Vous devez plutôt tester contre $results->have_posts() ou l’un des ce sont des propriétés comme 0 === $results->found_posts

3
Howdy_McGee