j'utilise slim avec wordpress. Cela a fonctionné parfaitement jusqu'à présent. Bien presque. Une fois que j'ai changé en multisite, j'ai dû commencer à créer de fausses variables $_SERVER
simulant un nom de domaine. Mais cela a finalement fonctionné.
Ce que je devais utiliser était la suivante:
global $_SERVER;
$_SERVER['HTTP_Host'] = 'www.mydomain.com';
$_SERVER['REQUEST_URI'] = '/';
require_once( __DIR__ .'/../../../wp-load.php' );
on se sent mal et très maladroit, mais ne pas l'utiliser conduirait à une erreur, voir ici (ou est-ce que cela compte aussi comme crosspost??):
Mais maintenant, j'ai rencontré le problème suivant:
https://stackoverflow.com/questions/37912920/wp-load-php-disabling-the-ob-flush-to-work-correctly
est-il maintenant possible d'accéder à toutes les fonctions wordpress sans utiliser wp-load.php?
le problème auquel je suis confronté est que wp-load.php modifie en quelque sorte l'objet de réponse afin que je ne sois plus en mesure de le vider (voir la note sur le lien: je pense avoir trouvé une solution au problème. Ma question reste posée: un moyen plus correct pour les fonctions wordpress au lieu de wp-load.php
?)
wp-load.php
est le seul moyen d'y aller. Je ne pense pas qu'il y ait vraiment une autre façon de charger les fonctions WordPress en toute sécurité ...
Vous pouvez prendre en compte les variations de chemin en l'incluant récursivement à partir de tout fichier où vous en avez besoin, par exemple ...
function file_find_require($file,$folder=null) {
if ($folder === null) {$folder = dirname(__FILE__);}
$path = $folder.DIRECTORY_SEPARATOR.$file;
if (file_exists($path)) {require($path); return $folder;}
else {
$upfolder = file_find_require($file,dirname($folder));
if ($upfolder != '') {return $upfolder;}
}
}
$rootpath = file_find_require('wp-load.php');