L'API WordPress/WooCommerce est cassé sur mon site: http://example.com/wp-json/wp/v2/posts et http://example.com/wp-json/wc/v2/products les deux retournent une réponse en blanc.
Exécuter une requête Python par
response = requests.get('http://<mysite>.com/wp-json/wp/v2/posts', auth=HTTPBasicAuth(*auth))
donne une réponse (examinée dans un débogueur) de
{
...
_content: b''
headers: ... 'content-type': 'text/html' ...
}
Selon https://github.com/WP-API/WP-API/issues/2911 , la réponse vide indique une erreur PHP fatale.
La semaine dernière, j'utilisais l'API WordPress pour ajouter des produits WC à mon site, sans aucun problème. Je crois que cela a cessé de fonctionner lorsque j'ai installé le plugin WordPress-rest-api , puis que je l'ai désinstallé, après avoir réalisé que cela n'était pas nécessaire.
J'ai mis en place un site de développement en guise de test de contrôle et tout a bien fonctionné.
Spécifiquement, je veux que l'API WooCommerce fonctionne, mais je suppose que cela signifie que l'API restante devrait également fonctionner.
Nous avons des sauvegardes, mais il y a eu des changements depuis la dernière sauvegarde. Dois-je recréer le site à partir d'une sauvegarde pour qu'il fonctionne à nouveau?
EDIT: la seule erreur dans error_log
est
[PHP Deprecated: Automatically populating $HTTP_RAW_POST_DATA is
deprecated and will be removed in a future version.
To avoid this warning set 'always_populate_raw_post_data' to '-1'
in php.ini and use the php://input stream instead.
in Unknown on line 0
qui ne se produit pas au même moment que mes demandes d'API.
La désinstallation et la réinstallation de tous les plugins ont révélé la réponse, que je recommande comme première étape pour résoudre ce type de problème.
Le problème était apparemment dû à un conflit entre WC-Vendors et un autre plug-in déclarant la même classe WC_Email_Notify_Shipped
. J'ai donc désactivé WC-Vendors, ce que nous n'utilisions pas à l'époque.