J'ai un script PHP que je dois exécuter en tant que tâche cron. Cependant, ce script doit avoir accès à l'API WP ( get_pages()
, get_post_meta()
et get_permalink()
spécifiquement). J'ai suivi les instructions sur http://codex.wordpress.org/Integrating_WordPress_with_Your_Website , mais en vain.
Code:
require_once('../../../wp-blog-header.php');
$args = array(
'child_of' => 2083
);
$pages = get_pages($args);
Cependant, lorsque je cours à php -q this_file.php
partir de la ligne de commande, j'obtiens la sortie suivante:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Database Error</title>
</head>
<body>
<h1>Error establishing a database connection</h1>
</body>
</html>
Quelqu'un a des idées / suggestions?
la source
get_pages
, il a besoin de la classe WP. donc wp-blog-header.php était le bon fichier à appeler.HTTP_HOST
,SERVER_NAME
etREQUEST_URI
. A également essayé avec les deuxwp-blog-header.php
etwp-load.php
. Même message d'erreur que celui indiqué dans la question d'origine dans tous les cas. J'exécute cela à partir de mon répertoire de thèmes - est-ce important?Vous pouvez utiliser la commande wp-cli
eval-file
:Cela chargera d'abord l'environnement WP, puis exécutera votre fichier.
la source
La réponse acceptée par @prettyboymp concerne les informations les plus utiles et uniques sur l'accès à wordpress à partir d'un script php que j'ai trouvées sur le Web. Cela a parfaitement fonctionné pour moi avec WP core 3.7.1, puis 3.9 l'a cassé.
Le problème était que cela a
wp-load.php
changé la façon dont il a testé leREQUEST_URI
chemin d'accès valide. Mais heureusement, il a également ajouté un nouveau filtre pour permettre de court-circuiter le test.Donc , pour restaurer la fonctionnalité de la réponse en 3.9, j'ai ajouté
define('SUNRISE', 'on');
àwp-config.php
, et le fichier crééwp-content/sunrise.php
avec ce contenu:la source
Une variante de la réponse de @ prettyboymp pourrait être:
la source