J'ai écrit un script PHP, qui devait être un WP-Cron-cronjob et qui utilise des fonctions spécifiques au wordpress. En raison de certaines restrictions dans son environnement d'exécution, j'ai besoin de démarrer ce script à partir de la ligne de commande avec /usr/bin/php -q longThing.php
au lieu d'un événement WP-Cron. Comment puis-je m'assurer que toutes les fonctions de base de wordpress sont appelables dans mon script?Comment démarrer un script php à partir de cli dans wordpress
1
A
Répondre
0
Xaedes solution fonctionne très bien:
<?php
if(php_sapi_name() !== 'cli') {
die("Meant to be run from command line");
}
function find_wordpress_base_path() {
$dir = dirname(__FILE__);
do {
//it is possible to check for other files here
if(file_exists($dir."/wp-config.php")) {
return $dir;
}
} while($dir = realpath("$dir/.."));
return null;
}
define('BASE_PATH', find_wordpress_base_path()."/");
define('WP_USE_THEMES', false);
global $wp, $wp_query, $wp_the_query, $wp_rewrite, $wp_did_header;
require(BASE_PATH . 'wp-load.php');
Si vous utilisez wp-cli pour gérer votre site Wordpress (ce qui est une bonne idée), vous pouvez l'utiliser pour exécuter PHP arbitraire dans le contexte de WP. Voir http://wp-cli.org/commands/eval-file/ – moopet