Gestion des 404 dans oembed_recuperer_url

Bonjour, mon site se fait "spammer" de logs du genre Pub:ERREUR: Failed to parse Json data : Syntax error

Après investigation, cette erreur provient de bots qui scannent de vieux articles dans lesquels il y a des liens youtube morts.

Le problème vient de la fonction inc_oembed_recuperer_url qui gère mal les 404 et est reproductible dans les 2 branches du if (function_exists('curl_init')). La fonction considère que si $data ou $data['page'] vaut quelque chose, alors la requête contient une réponse valide, ce qui n'est pas systématiquement vrai.

Par exemple cette requête https://www.youtube.com/oembed?url=https://youtu.be/cbAhfThNoco est un succès (on a bien une réponse) MAIS retourne une 404. Et dans ce cas, le contenu de $data n'est pas (forcément) un JSON mais peut aussi être une string à l'initiative du serveur interrogé. Pour le cas de youtube, ce sera "Not Found".

Je pense que meilleure solution ici est de rajouter un contrôle sur la réponse HTTP à la requête, et de ne tenter un décodage que si la réponse est 200.

Pol